§
    2@ÄjÕ� ã                   óš  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZ	d dl
Z
d dlmZ d dlZd dlmZ d dlZd dlmZmZ d dlZd dlmZmZ d dlZd dl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)m*Z*m+Z+m,Z, d dl-m.Z.m/Z/ d d	l0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d d
l7m8Z8 d dl9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZE d dlFmGZGmHZH d dlImJZJmKZK d dlLmMZM d dlNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\ d dl]m^Z^ d dl_m`Z` d dl$maZa d dlbZbd dlcZceU G d„ deO¦  «        ¦   «         Zd ecje         ejf        ¦   «         dvd¦  «        ZgdZhdZi edd¦  «        Zjd„ Zke[ G d„ deO¦  «        ¦   «         Zld „ Zmd!„ Znd"„ Zod#„ Zpd$„ Zqd%„ Zrd&„ Zsd'„ Ztd(„ Zud)„ Zvd*„ ZwdUd+„Zxd,„ Zy G d-„ d.ez¦  «        Z{eU G d/„ d0el¦  «        ¦   «         Z|eU G d1„ d2el¦  «        ¦   «         Z}eU G d3„ d4el¦  «        ¦   «         Z~ G d5„ d6eO¦  «        ZeU G d7„ d8el¦  «        ¦   «         Z€eU G d9„ d:eQel¦  «        ¦   «         Z�eU G d;„ d<el¦  «        ¦   «         Z‚eU G d=„ d>el¦  «        ¦   «         ZƒeU G d?„ d@el¦  «        ¦   «         Z„eU G dA„ dBel¦  «        ¦   «         Z…eU G dC„ dDel¦  «        ¦   «         Z† G dE„ dFel¦  «        Z‡eU G dG„ dHe‡¦  «        ¦   «         Zˆe^dI„ ¦   «         Z‰eU G dJ„ dKe‡¦  «        ¦   «         ZŠeU G dL„ dMeO¦  «        ¦   «         Z‹eUeg G dN„ dOe‡¦  «        ¦   «         ¦   «         ZŒeU G dP„ dQeO¦  «        ¦   «         Z�eU G dR„ dSeO¦  «        ¦   «         ZŽe�dTk    r ecj�        ¦   «          dS dS )Vé    N©Úreduce©Úrandn)ÚdefaultdictÚ
namedtuple)ÚcycleÚchain)ÚnjitÚprangeÚparallel_chunksizeÚget_parallel_chunksizeÚset_parallel_chunksizeÚset_num_threadsÚget_num_threadsÚtypeof)	ÚtypesÚerrorsÚirÚrewritesÚtyped_passesÚinline_closurecallÚconfigÚcompilerÚcpu)ÚDictÚList)Úoverload_methodÚregister_modelÚtypeof_implÚunboxÚNativeValueÚmodels)Ú
cpu_target)Útype_annotations)Úfind_callnameÚguardÚbuild_definitionsÚget_definitionÚ
is_getitemÚ
is_setitemÚindex_var_of_get_setitem)Úempty_inferred)ÚCompilerBaseÚDefaultPassBuilder)Úregister_passÚAnalysisPass)ÚIRLegalization)ÚTestCaseÚcaptured_stdoutÚMemoryLeakMixinÚoverride_env_configÚ
linux_onlyÚtagÚskip_parfors_unsupportedÚ_32bitÚ
needs_blasÚneeds_lapackÚdisabled_testÚskip_unless_scipyÚneeds_subprocessÚskip_ppc64le_invalid_ctr_loop)Úregister_jitable)Ú_fix_LOAD_GLOBAL_arg)Úutilsc                   ó–   — e Zd ZdZ ej        ¦   «         dk    rdn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S )ÚTestParforsRunnerFÚaarch64i  i  c                 óÚ   — | j         }|                      ¦   «                              d¦  «        d                              d¦  «        d         }|                      ||| j        ¬¦  «         d S )Nú.éÿÿÿÿÚ_)Útest_moduleÚ
test_classÚtimeout)Ú
__module__ÚidÚsplitÚsubprocess_test_runnerÚ_TIMEOUT)ÚselfÚthemodÚtest_clazz_names      úIC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_parfors.pyÚrunnerzTestParforsRunner.runnerQ   sk   € Ø”ˆØŸ'š'™)œ)Ÿ/š/¨#Ñ.Ô.¨rÔ2×8Ò8¸Ñ=Ô=¸bÔAˆà×#Ò#°Ø/>Ø,0¬Mð 	$ñ 	;ô 	;ð 	;ð 	;ð 	;ó    c                 ó.   — |                       ¦   «          d S ©N©rW   ©rS   s    rV   Útest_TestParforBasicz&TestParforsRunner.test_TestParforBasicY   ó   € Ø�Š‰ŒˆˆˆrX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforNumericalMiscz.TestParforsRunner.test_TestParforNumericalMisc\   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforNumPyz&TestParforsRunner.test_TestParforNumPy_   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforsz"TestParforsRunner.test_TestParforsb   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforsBitMaskz)TestParforsRunner.test_TestParforsBitMaske   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforsDiagnosticsz-TestParforsRunner.test_TestParforsDiagnosticsh   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforsLeaksz'TestParforsRunner.test_TestParforsLeaksk   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforsMiscz&TestParforsRunner.test_TestParforsMiscn   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforsOptionsz)TestParforsRunner.test_TestParforsOptionsq   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforsSlicez'TestParforsRunner.test_TestParforsSlicet   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestParforsVectorizerz,TestParforsRunner.test_TestParforsVectorizerw   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestPrangeBasicz&TestParforsRunner.test_TestPrangeBasicz   r^   rX   c                 ó.   — |                       ¦   «          d S rZ   r[   r\   s    rV   Útest_TestPrangeSpecificz)TestParforsRunner.test_TestPrangeSpecific}   r^   rX   N)Ú__name__rN   Ú__qualname__Ú_numba_parallel_test_ÚplatformÚmachinerR   rW   r]   r`   rb   rd   rf   rh   rj   rl   rn   rp   rr   rt   rv   © rX   rV   rE   rE   C   s  € € € € € ð "Ðð (�xÔ'Ñ)Ô)¨YÒ6Ð6ˆtˆt¸D€Hðð
;ð ;ð ;ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð rX   rE   )Úi386Úx86_64zx86 only testé   é   ÚTestNamedTuple©Úpart0Úpart1c                 ó   — dS )z¤
    Used with check_arq_equality to indicate that we do not care
    whether the value of the parameter at the end of the function
    has a particular value.
    Nr|   ©ÚaÚbs     rV   Únull_comparerr‰   ‰   s	   € ð 	€DrX   c                   ó†   — 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d„Zdd„Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestParforsBasezµ
    Base class for testing parfors.
    Provides functions for compilation and three way comparison between
    python functions, njit'd functions and parfor njit'd functions.
    Fc                 óD   —  t          |fi |¤Ž|¦  «        j        |         S rZ   )r   Ú	overloads)rS   ÚfuncÚsigÚflagss       rV   Ú_compile_thiszTestParforsBase._compile_thisœ   s,   € ð "�t�CÐ!Ð!˜5Ð!Ð! $Ñ'Ô'Ô1°#Ô6Ð6rX   c                 ó2   — |                       ||d¬¦  «        S )NT©Úparallel©r‘   ©rS   rŽ   r�   s      rV   Úcompile_parallelz TestParforsBase.compile_parallel¡   s   € Ø×!Ò! $¨°dÐ!Ñ;Ô;Ð;rX   c                 ó4   — |                       ||dd¬¦  «        S )NT)r”   Úfastmathr•   r–   s      rV   Úcompile_parallel_fastmathz)TestParforsBase.compile_parallel_fastmath¤   s   € Ø×!Ò! $¨°dÀTÐ!ÑJÔJÐJrX   c                 ó.   — |                       ||¦  «        S rZ   r•   r–   s      rV   Úcompile_njitzTestParforsBase.compile_njit§   s   € Ø×!Ò! $¨Ñ,Ô,Ð,rX   c                 ó”   — t          d„ |D ¦   «         ¦  «        }|                      ||¦  «        }|                      ||¦  «        }||fS )Nc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r|   ©Únumbar   ©Ú.0Úxs     rV   ú
<listcomp>z/TestParforsBase.compile_all.<locals>.<listcomp>«   ó    € Ð3Ð3Ð3¨•U”\ !‘_”_Ð3Ð3Ð3rX   )Útupler—   rœ   )rS   ÚpyfuncÚargsÚkwargsr�   ÚcpfuncÚcfuncs          rV   Úcompile_allzTestParforsBase.compile_allª   sV   € ÝÐ3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4ˆð ×&Ò& v¨sÑ3Ô3ˆð ×!Ò! &¨#Ñ.Ô.ˆà�fˆ}ÐrX   c                 ó   — |                      dd¦  «        }|                      dd¦  «        }|                      dd¦  «        }|                      dd¦  «        }	|                      dd¦  «        }
d„ } ||Ž } ||Ž } ||Ž } |j        |Ž } ||Ž } |j        |Ž }|
€at          j        j        ||fi |¤Ž t          j        j        ||fi |¤Ž |                      t          |¦  «        t          |¦  «        ¦  «         nPt          |¦  «        t          |
¦  «        k    sJ ‚t          ||||
¦  «        D ]\  }}}} |||fi |¤Ž  |||fi |¤Ž Œ|	r|  	                    ||¦  «         |�' |j         ||Ž Ž }t          j        j        ||fi |¤Ž dS dS )	a-  
        Checks python, njit and parfor impls produce the same result.

        Arguments:
            pyfunc - the python function to test
            cfunc - CompilerResult from njit of pyfunc
            cpfunc - CompilerResult from njit(parallel=True) of pyfunc
            args - arguments for the function being tested
        Keyword Arguments:
            scheduler_type - 'signed', 'unsigned' or None, default is None.
                           Supply in cases where the presence of a specific
                           scheduler is to be asserted.
            fastmath_pcres - a fastmath parallel compile result, if supplied
                             will be run to make sure the result is correct
            check_arg_equality - some functions need to check that a
                                 parameter is modified rather than a certain
                                 value returned.  If this keyword argument
                                 is supplied, it should be a list of
                                 comparison functions such that the i'th
                                 function in the list is used to compare the
                                 i'th parameter of the njit and parallel=True
                                 functions against the i'th parameter of the
                                 standard Python function, asserting if they
                                 differ.  The length of this list must be equal
                                 to the number of parameters to the function.
                                 The null comparator is available for use
                                 when you do not desire to test if some
                                 particular parameter is changed.
            Remaining kwargs are passed to np.testing.assert_almost_equal
        Úscheduler_typeNÚcheck_fastmathÚfastmath_pcresÚcheck_schedulingTÚcheck_arg_equalityc                  óâ  — | st          ¦   «         S g }| D �]Ë}t          |t          j        ¦  «        r)|                     |                     d¦  «        ¦  «         ŒFt          |t          j        ¦  «        r(|                     |                     ¦   «         ¦  «         Œˆt          |t          j        ¦  «        r|                     |¦  «         Œ¸|€|                     |¦  «         ŒÐt          |t           ¦  «        r)|                     t          j	        |¦  «        ¦  «         �Œt          |t          ¦  «        r|                     |d d …         ¦  «         �ŒBt          |t          ¦  «        r)|                     t          j        |¦  «        ¦  «         �Œ€t          |t          ¦  «        r)|                     t          j        |¦  «        ¦  «         �Œ¾t          d¦  «        ‚t          |¦  «        S )NÚkz%Unsupported argument type encountered)r¦   Ú
isinstanceÚnpÚndarrayÚappendÚcopyÚnumberÚnumbersÚNumberÚdeepcopyÚlistr   r   Ú
ValueError)r¨   Únew_argsr£   s      rV   Ú	copy_argsz:TestParforsBase.check_parfors_vs_others.<locals>.copy_argsÚ   s°  € Øð Ý‘w”w�ØˆHØð Nñ N�Ý˜a¥¤Ñ,Ô,ð NØ—O’O A§F¢F¨3¡K¤KÑ0Ô0Ð0Ð0Ý ¥2¤9Ñ-Ô-ð NØ—O’O A§F¢F¡H¤HÑ-Ô-Ð-Ð-Ý ¥7¤>Ñ2Ô2ð NØ—O’O AÑ&Ô&Ð&Ð&Ø�YØ—O’O AÑ&Ô&Ð&Ð&Ý ¥5Ñ)Ô)ð 	NØ—O’O¥D¤M°!Ñ$4Ô$4Ñ5Ô5Ð5Ñ5Ý ¥4Ñ(Ô(ð NØ—O’O A a a a¤DÑ)Ô)Ð)Ñ)Ý ¥4Ñ(Ô(ð NØ—O’O¥D¤I¨a¡L¤LÑ1Ô1Ð1Ñ1Ý ¥4Ñ(Ô(ð NØ—O’O¥D¤I¨a¡L¤LÑ1Ô1Ð1Ñ1å$Ð%LÑMÔMÐMÝ˜‘?”?Ð"rX   )
ÚpopÚentry_pointr¶   ÚtestingÚassert_almost_equalÚassertEqualÚtypeÚlenÚzipr±   )rS   r§   r«   rª   r¨   r©   r®   r¯   r°   r±   Úcheck_args_for_equalityrÁ   Úpy_argsÚpy_expectedÚ	njit_argsÚnjit_outputÚparfor_argsÚparfor_outputÚpyargÚnjitargÚ	parforargÚargcompÚparfor_fastmath_outputs                          rV   Úcheck_parfors_vs_othersz'TestParforsBase.check_parfors_vs_othersµ   s3  € ð>  ŸšÐ$4°dÑ;Ô;ˆØŸšÐ$4°dÑ;Ô;ˆØŸšÐ$4°dÑ;Ô;ˆØ!Ÿ:š:Ð&8¸$Ñ?Ô?ÐØ"(§*¢*Ð-AÀ4Ñ"HÔ"HÐð	#ð 	#ð 	#ð4 �)˜TÐ"ˆØ�f˜gÐ&ˆð �I˜tÐ$ˆ	Ø'�eÔ'¨Ð3ˆð  �i Ð&ˆØ*˜Ô*¨KÐ8ˆà"Ð*ÝŒJÔ*¨;¸ÐNÐNÀvÐNÐNÐNÝŒJÔ*¨=¸+ÐPÐPÈÐPÐPÐPØ×Ò�T +Ñ.Ô.µ°]Ñ0CÔ0CÑDÔDÐDÐDå�w‘<”<¥3Ð'>Ñ#?Ô#?Ò?Ð?Ð?Ð?Ý69Ø˜ KÐ1Hñ7Jô 7Jð 4ð 4Ñ2��w 	¨7à�˜ Ð1Ð1¨&Ð1Ð1Ð1Ø�˜	 5Ð3Ð3¨FÐ3Ð3Ð3Ð3àð 	:Ø×!Ò! &¨.Ñ9Ô9Ð9ð Ð%Ø%? ^Ô%?ÀÀÈDÐAQÐ%RÐ"ÝŒJÔ*Ð+AÀ;ð 5ð 5Ø-3ð5ð 5ð 5ð 5ð 5ð &Ð%rX   c                 óN   —  | j         |g|¢R Ž \  }} | j        |||g|¢R i |¤Ž dS )z‹Checks that pyfunc compiles for *args under parallel=True and njit
        and asserts that all version execute and produce the same resultN©r¬   rÖ   ©rS   r§   r¨   r©   r«   rª   s         rV   ÚcheckzTestParforsBase.check  sO   € ð )˜Ô(¨Ð7°$Ð7Ð7Ð7‰ˆˆvØ$ˆÔ$ V¨U°FÐL¸TÐLÐLÐLÀVÐLÐLÐLÐLÐLrX   c           	      óÜ   —  |¦   «         D ]`}|                       t          t          t          |¦  «        ¦  «        ¦  «        5   | j        |g|¢R i |¤Ž ddd¦  «         n# 1 swxY w Y   ŒadS )zHRun self.check(impl, ...) on array data generated from arg_gen.
        N)ÚsubTestr¾   Úmapr   rÚ   )rS   ÚimplÚarg_genr©   r¨   s        rV   Úcheck_variantszTestParforsBase.check_variants  s¿   € ð �G‘I”Ið 	2ð 	2ˆDØ—’�d¥3¥v¨tÑ#4Ô#4Ñ5Ô5Ñ6Ô6ð 2ð 2Ø�”
˜4Ð1 $Ð1Ð1Ð1¨&Ð1Ð1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2øð	2ð 	2s   ÁA Á A$	Á'A$	c           	      óF  —  |¦   «         D ]•}|                       t          t          t          |¦  «        ¦  «        ¦  «        5  t	          t          t          |¦  «        ¦  «        }|                      t          ||¦  «        d¦  «         ddd¦  «         n# 1 swxY w Y   Œ–dS )zXRun self.countParfors(impl, ...) on array types generated from
        arg_gen.
        é   N)rÜ   r¾   rÝ   r   r¦   ÚassertGreaterEqualÚcountParfors)rS   rÞ   rß   r©   r¨   Úargtyss         rV   Úcount_parfors_variantsz&TestParforsBase.count_parfors_variants   sé   € ð �G‘I”Ið 	Gð 	GˆDØ—’�d¥3¥v¨tÑ#4Ô#4Ñ5Ô5Ñ6Ô6ð Gð GÝ�s¥6¨4Ñ0Ô0Ñ1Ô1�à×'Ò'­°T¸6Ñ(BÔ(BÀAÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gøð	Gð 	Gs   ÁABÂB	ÂB	c                 óª   — d}|�!|dv r	|d|z   z  }nd}t          ||z  ¦  «        ‚|                      ||j                             ¦   «         ¦  «         d S )Nz@do_scheduling)ÚsignedÚunsignedrJ   z$Unknown scheduler_type specified: %s)r¿   ÚassertInÚlibraryÚget_llvm_str)rS   Úcresr®   Úscheduler_strÚmsgs        rV   r±   z TestParforsBase.check_scheduling*  sj   € à(ˆØÐ%ØÐ!7Ð7Ð7Ø  ~Ñ!5Ñ5��à<�Ý   ~Ñ!5Ñ6Ô6Ð6à�Š�m T¤\×%>Ò%>Ñ%@Ô%@ÑAÔAÐAÐAÐArX   c                 ót   ‡‡— ˆfd„}t           |¦   «         ¦  «        Šˆfd„t          |¦  «        D ¦   «         S )zFMake *ct* sample 1D arrays of length *n* using np.linspace().
        c               3   óœ   •K  — t          j        dd‰ ¦  «        V — t          j        dd‰ ¦  «        V — t          j        dd‰ ¦  «        V — d S ©Nr   râ   é   ©r¶   Úlinspace©Úns   €rV   Úgenz)TestParforsBase.gen_linspace.<locals>.gen9  s[   øè è € Ý”+˜a  AÑ&Ô&Ð&Ð&Ð&Ý”+˜a  AÑ&Ô&Ð&Ð&Ð&Ý”+˜a  AÑ&Ô&Ð&Ð&Ð&Ð&Ð&rX   c                 ó.   •— g | ]}t          ‰¦  «        ‘ŒS r|   )Únext)r¢   ÚiÚsrcs     €rV   r¤   z0TestParforsBase.gen_linspace.<locals>.<listcomp>?  s   ø€ Ð-Ð-Ð-˜a•�S‘	”	Ð-Ð-Ð-rX   )r	   Úrange)rS   r÷   Úctrø   rü   s    `  @rV   Úgen_linspacezTestParforsBase.gen_linspace6  sP   øø€ ð	'ð 	'ð 	'ð 	'ð 	'õ
 �C�C‘E”E‰lŒlˆØ-Ð-Ð-Ð-¥5¨¡9¤9Ð-Ñ-Ô-Ð-rX   c              #   ó  K  — |                       d|¬¦  «        V — d„ |                       d|¬¦  «        D ¦   «         }|V — d„ |D ¦   «         V — d„ |                       d|¬¦  «        D ¦   «         }|V — d	„ |D ¦   «         V — d
S )z?Make 1D, 2D, 3D variants of the data in C and F orders
        é
   )rþ   c                 ó8   — g | ]}|                      d ¦  «        ‘ŒS )©ró   é   ©Úreshaper¡   s     rV   r¤   z9TestParforsBase.gen_linspace_variants.<locals>.<listcomp>H  s4   € ð >ð >ð >Øð —)’)˜FÑ#Ô#ð >ð >ð >rX   é   )r÷   rþ   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r|   ©r¶   Úasfortranarrayr¡   s     rV   r¤   z9TestParforsBase.gen_linspace_variants.<locals>.<listcomp>L  ó#   € Ð4Ð4Ð4¨�rÔ  Ñ#Ô#Ð4Ð4Ð4rX   c                 ó8   — g | ]}|                      d ¦  «        ‘ŒS ))ró   r  é   r  r¡   s     rV   r¤   z9TestParforsBase.gen_linspace_variants.<locals>.<listcomp>O  s:   € ð Bð Bð BØð —)’)˜IÑ&Ô&ð Bð Bð BrX   é   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r|   r	  r¡   s     rV   r¤   z9TestParforsBase.gen_linspace_variants.<locals>.<listcomp>S  r  rX   N)rÿ   )rS   rþ   Úarr2dsÚarr3dss       rV   Úgen_linspace_variantsz%TestParforsBase.gen_linspace_variantsA  sÚ   è è € ð ×Ò  rÐÑ*Ô*Ð*Ð*Ð*ð>ð >Ø×,Ò,¨u¸Ð,Ñ<Ô<ð>ñ >ô >ˆàˆˆˆà4Ð4¨VÐ4Ñ4Ô4Ð4Ð4Ð4ðBð BØ×,Ò,¨y¸RÐ,Ñ@Ô@ðBñ Bô Bˆàˆˆˆà4Ð4¨VÐ4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4rX   Nc                 óX   ‡— ˆfd„|D ¦   «         }|�|D ]}|t          |¦  «        v sJ ‚Œ|S )z. helper function to filter out modules by namec                 ó&   •— g | ]}‰|j         v ¯|‘ŒS r|   ©Úname)r¢   r£   Úmagicstrs     €rV   r¤   z/TestParforsBase._filter_mod.<locals>.<listcomp>W  s%   ø€ Ð5Ð5Ð5�a (¨a¬fÐ"4Ð"4�Ð"4Ð"4Ð"4rX   )Ústr)rS   Úmodr  ÚcheckstrÚfiltr£   s     `   rV   Ú_filter_modzTestParforsBase._filter_modU  sP   ø€ à5Ð5Ð5Ð5˜3Ð5Ñ5Ô5ˆØÐØð *ð *�Ø¥3 q¡6¤6Ð)Ð)Ð)Ð)Ð)ØˆrX   c                 óü   — d„ |j         j        j        j        j        D ¦   «         }|                      |||¬¦  «        }|j                              ¦   «         }g }|D ] }|j        |v r|                     |¦  «         Œ!|S )z gets the gufunc LLVM Modulesc                 ó   — g | ]}|‘ŒS r|   r|   r¡   s     rV   r¤   z7TestParforsBase._get_gufunc_modules.<locals>.<listcomp>_  s   € ÐJÐJÐJ˜!�AÐJÐJÐJrX   )r  )	rë   Ú_codegenÚ_engineÚ_eeÚ_modulesr  Úget_asm_strr  r¸   )	rS   rí   r  r  r"  Úpotential_matchesÚlib_asmÚretr  s	            rV   Ú_get_gufunc_modulesz#TestParforsBase._get_gufunc_modules]  s”   € àJÐJ˜tœ|Ô4Ô<Ô@ÔIÐJÑJÔJˆð !×,Ò,¨X°xØ6>ð -ñ @ô @Ðð ”,×*Ò*Ñ,Ô,ˆØˆØ$ð 	 ð 	 ˆCØŒx˜7Ð"Ð"Ø—
’
˜3‘”�øØˆ
rX   c                 ó‚   — d}|                       ||¦  «        }t          ¦   «         }|D ]} ||¦  «        ||j        <   Œ|S )z$ helper for gufunc IR/asm generationÚ__numba_parfor_gufunc)r'  Údictr  )rS   rí   Úfnr  Úgufunc_modsr£   r  s          rV   Ú_get_gufunc_infoz TestParforsBase._get_gufunc_infol  sP   € ð +ˆØ×.Ò.¨t°XÑ>Ô>ˆÝ‰FŒFˆØð 	"ð 	"ˆCØ˜"˜S™'œ'ˆAˆcŒh‰KˆKØˆrX   c                 ó8   — |                       |t          ¦  «        S )zÏ
        Returns the IR of the gufuncs used as parfor kernels
        as a dict mapping the gufunc name to its IR.

        Arguments:
         cres - a CompileResult from `njit(parallel=True, ...)`
        )r-  r  )rS   rí   s     rV   Ú_get_gufunc_irzTestParforsBase._get_gufunc_irv  s   € ð ×$Ò$ T­3Ñ/Ô/Ð/rX   c                 ó\   ‡— |j         j        j        Šˆfd„}|                      ||¦  «        S )zÛ
        Returns the assembly of the gufuncs used as parfor kernels
        as a dict mapping the gufunc name to its assembly.

        Arguments:
         cres - a CompileResult from `njit(parallel=True, ...)`
        c                 óH   •— t          ‰                     | ¦  «        ¦  «        S rZ   )r  Úemit_assembly)r  Útms    €rV   Úemit_asmz1TestParforsBase._get_gufunc_asm.<locals>.emit_asm‰  s   ø€ Ý�r×'Ò'¨Ñ,Ô,Ñ-Ô-Ð-rX   )rë   r  Ú_tmr-  )rS   rí   r4  r3  s      @rV   Ú_get_gufunc_asmzTestParforsBase._get_gufunc_asm€  sA   ø€ ð Œ\Ô"Ô&ˆð	.ð 	.ð 	.ð 	.ð 	.à×$Ò$ T¨8Ñ4Ô4Ð4rX   c                 óÎ   ‡ — ‰                       ||¦  «        }‰                      |¦  «        }d„ }ˆ fd„}|                     ¦   «         D ]\  }} ||¦  «        }	 ||	¦  «         ŒdS )a�  
        Asserts that the fastmath flag has some effect in that suitable
        instructions are now labelled as `fast`. Whether LLVM can actually do
        anything to optimise better now the derestrictions are supplied is
        another matter!

        Arguments:
         pyfunc - a function that contains operations with parallel semantics
         sig - the type signature of pyfunc
        c                 óŠ   —  | j         ¦   «         }g }|D ].}t          j        d|¦  «        }|�|                     |¦  «         Œ/|S )Nz\bfast\b)Ú
splitlinesÚreÚsearchr¸   )r   ÚsplittedÚ	fast_instr£   Úms        rV   Ú_get_fast_instructionsz?TestParforsBase.assert_fastmath.<locals>._get_fast_instructionsœ  sT   € Ø$�r”}‘”ˆHØˆIØð (ð (�Ý”I˜k¨1Ñ-Ô-�Ø�=Ø×$Ò$ QÑ'Ô'Ð'øØÐrX   c                 ór   •— d}| D ]0}d}|D ]}|dz   }||v r|dz  }Œ‰                      |dk    ¦  «         Œ1d S )N)ÚfaddÚfsubÚfmulÚfdivÚfremÚfcmpÚcallr   z fastrâ   )Ú
assertTrue)ÚinstrsÚopsÚinstÚcountÚopÚmatchrS   s         €rV   Ú_assert_fastz5TestParforsBase.assert_fastmath.<locals>._assert_fast¥  sj   ø€ ØJˆCØð +ð +�Ø�Øð #ð #�BØ ™L�EØ �}�}Ø ™
˜øØ—’ ¨¢	Ñ*Ô*Ð*Ð*ð+ð +rX   N)rš   r/  Úitems)
rS   r§   r�   rí   Ú_irr?  rO  r  ÚguirrK  s
   `         rV   Úassert_fastmathzTestParforsBase.assert_fastmath�  sŸ   ø€ ð ×-Ò-¨f°cÑ:Ô:ˆØ×!Ò! $Ñ'Ô'ˆð	ð 	ð 	ð	+ð 	+ð 	+ð 	+ð 	+ð Ÿ)š)™+œ+ð 	ð 	‰JˆD�$Ø)Ð)¨$Ñ/Ô/ˆDØˆL˜ÑÔÐÐð	ð 	rX   rZ   )rw   rN   rx   Ú__doc__ry   r‘   r—   rš   rœ   r¬   rÖ   rÚ   rà   ræ   r±   rÿ   r  r  r'  r-  r/  r6  rS  r|   rX   rV   r‹   r‹   ’   sN  € € € € € ðð ð "Ðð7ð 7ð 7ð
<ð <ð <ðKð Kð Kð-ð -ð -ð	ð 	ð 	ð\5ð \5ð \5ð|Mð Mð Mð2ð 2ð 2ðGð Gð Gð
Bð 
Bð 
Bð	.ð 	.ð 	.ð5ð 5ð 5ð(ð ð ð ðð ð ð ðð ð ð0ð 0ð 0ð5ð 5ð 5ð$ð $ð $ð $ð $rX   r‹   c                 ó  — t          j        | |z  ¦  «        }d|z  |z  }|t          j        |¦  «        z  }||z   |z  |z   |z  }||z
  }	dd|z  z   }
dd|	z  z   }|t          j        | |z  ¦  «        z  }||z  }| |
z  |z
  }||z
  | z   }|S )Nç      à?ç      ð?)r¶   ÚlogÚsqrtÚexp)ÚsptpriceÚstrikeÚrateÚ
volatilityÚtimevÚlogtermÚpowtermÚdenÚd1Úd2ÚNofXd1ÚNofXd2ÚfutureValueÚc1rG  Úputs                   rV   Úblackscholes_implrj  ´  s»   € åŒf�X Ñ&Ñ'Ô'€GØ�JÑ Ñ+€GØ
•r”w˜u‘~”~Ñ
%€CØ�7‰N˜eÑ# wÑ
.°#Ñ	5€BØ	ˆc‰€BØ�9˜r‘>Ñ!€FØ�9˜r‘>Ñ!€FØ�2œ6 D &¨5¡.Ñ1Ô1Ñ1€KØ	�vÑ	€BØ�fÑ˜rÑ!€DØ
�Ñ
˜xÑ
'€CØ€JrX   c                 óÄ   — t          |¦  «        D ]O}|t          j        ddt          j        |  t          j        ||¦  «        z  ¦  «        z   z  dz
  | z  |¦  «        z  }ŒP|S ©NrW  )rý   r¶   ÚdotrZ  )ÚYÚXÚwÚ
iterationsrû   s        rV   Úlr_implrr  Ä  sg   € å�:ÑÔð Nð NˆØ	�RŒV�c˜S¥2¤6¨1¨"­r¬v°a¸©|¬|Ñ*;Ñ#<Ô#<Ñ<Ñ=ÀÑCÀqÑHÈ1ÑMÔMÑMˆˆØ€HrX   c                 ód  ‡ ‡‡‡‡‡	— |Š‰ j         \  }Št          |¦  «        D ]�}t          j        ˆ ˆˆfd„t          |¦  «        D ¦   «         ¦  «        Št          j        ˆfd„t          |¦  «        D ¦   «         ¦  «        Š	t          j        ˆ ˆˆ	fd„t          ‰¦  «        D ¦   «         ¦  «        ŠŒŽ‰S )Nc                 óL   •‡— g | ]Šˆˆˆfd „t          ‰¦  «        D ¦   «         ‘Œ S )c                 ó�   •— g | ]B}t          j        t          j        ‰‰d d …f         ‰|d d …f         z
  dz  ¦  «        ¦  «        ‘ŒCS ©Nró   )ÚmathrY  r¶   Úsum)r¢   ÚjÚAÚ	centroidsrû   s     €€€rV   r¤   z2example_kmeans_test.<locals>.<listcomp>.<listcomp>Ï  s_   ø€ ð ;ð ;ð ;Ø$%õ œ)¥B¤F¨A¨a°°°¨c¬F°9¸Q¸q¸q¸q¸S´>Ñ,AÀAÑ+EÑ$FÔ$FÑGÔGð ;ð ;ð ;rX   ©rý   )r¢   rû   rz  r{  Ú	numCenters    @€€€rV   r¤   z'example_kmeans_test.<locals>.<listcomp>Ï  sc   øø€ ð Nð Nð NØ?@ð;ð ;ð ;ð ;ð ;ð ;Ý).¨yÑ)9Ô)9ð;ñ ;ô ;ð Nð Nð NrX   c                 óL   •— g | ] }‰|d d …f                               ¦   «         ‘Œ!S rZ   ©Úargmin)r¢   rû   Údists     €rV   r¤   z'example_kmeans_test.<locals>.<listcomp>Ñ  s1   ø€ Ð@Ð@Ð@°!˜4  ! ! ! œ9×+Ò+Ñ-Ô-Ð@Ð@Ð@rX   c                 óL   •‡— g | ]Šˆˆˆfd „t          ‰¦  «        D ¦   «         ‘Œ S )c                 ó‚   •— g | ];}t          j        ‰‰‰k    |f         ¦  «        t          j        ‰‰k    ¦  «        z  ‘Œ<S r|   ©r¶   rx  )r¢   ry  rz  rû   Úlabelss     €€€rV   r¤   z2example_kmeans_test.<locals>.<listcomp>.<listcomp>Ó  sR   ø€ ð 4ð 4ð 4Ø%&õ  "œv a¨°ª	°1¨¤oÑ6Ô6µr´v¸fÀaºiÑ7HÔ7HÑHð 4ð 4ð 4rX   r|  )r¢   rû   rz  ÚDr…  s    @€€€rV   r¤   z'example_kmeans_test.<locals>.<listcomp>Ó  sa   øø€ ð Oð Oð OØ89ð4ð 4ð 4ð 4ð 4ð 4Ý*/°©(¬(ð4ñ 4ô 4ð Oð Oð OrX   )Úshaperý   r¶   Úarray)
rz  r}  ÚnumIterÚinit_centroidsÚNÚlr†  r{  r�  r…  s
   ``    @@@@rV   Úexample_kmeans_testr�  Ê  s	  øøøøøø€ Ø€IØŒ7�D€A€qå�7‰^Œ^ð Pð PˆÝŒxð Nð Nð Nð Nð Nð NÝDIÈ!ÁHÄHðNñ Nô Nñ Oô Oˆå”Ð@Ð@Ð@Ð@µu¸Q±x´xÐ@Ñ@Ô@ÑAÔAˆå”Hð Oð Oð Oð Oð Oð OÝ=BÀ9Ñ=MÔ=MðOñ Oô Oñ Pô Pˆ	ˆ	ð ÐrX   c                 óZ  — t           j        }t           j        }t          j        | ¦  «        }|rt          j        |¦  «        }nt          j        d¦  «        }t          ||||¦  «        }|                     ¦   «          |                     ¦   «          t          j
        |j        j        |d¬¦  «        }|                     ¦   «          t          j                             d|j        ¦  «         t#          j        |j        j        |j        j        |j        j        |j        j        d ¦  «        \  |j        _        |j        _        |j        _        }	t3          j        |j        j        |j        j        |j        j        dd |j        j        |j        j        t6          j        ¬¦  «         t:          j        j                              ¦   «         }
t:          j        j         !                    |j        j        |j        j        |j        j        |j        j        |j        j        ||
j"        ¬¦  «        }|                     ¦   «          t          j                             d|j        ¦  «         t          j#        ¦   «         }t:          j        j         $                    |j        j        |j        j        |j        j        |j        j        |j        j        |j        j        |||j        j%        |
¬¦
  «
        }|                     ¦   «          t:          j        j         &                    |j        j        |j        j        |j        j        |j        j        |j        j        |j        j        |||j        j%        |
¬¦
  «
        }|                     ¦   «          t:          j        j         '                    |j        j        |j        j        |j        j        |j        j        |j        j        |j        j        |||j        j%        |
¬¦
  «
        }|                     ¦   «          tQ          |j)        ¦  «        |_*        ||fS )	NT)Útypedzbefore-inferencer|   )Úfunc_irÚtypemapÚ	calltypesÚliftedÚlifted_fromr¨   Úreturn_typeÚhtml_output)Úswappedzafter-inference)Údiagnostics)+r$   Útyping_contextÚtarget_contextr   Úrun_frontendr   ÚParallelOptionsÚTestPipelineÚrefreshr   ÚInlineClosureCallPassÚstater�  Úrunr   Úrewrite_registryÚapplyr   Útype_inference_stageÚ	typingctxÚ	targetctxr¨   r‘  r•  r’  r%   ÚTypeAnnotationr   ÚHTMLr    ÚparforsÚparforÚParforDiagnosticsÚPreParforPassÚreplaced_fnsÚFlagsÚ
ParforPassÚmetadataÚParforFusionPassÚParforPreLoweringPassr(   ÚblocksÚ_definitions)Ú	test_funcr¨   Úkwsr¥  r¦  Útest_irÚoptionsÚtpÚinline_passrJ   r˜  Úpreparfor_passr�   Úparfor_passs                 rV   Úget_optimized_numba_irr½  Ø  sy  € ÝÔ)€IÝÔ)€IÝÔ# IÑ.Ô.€GØ
ð ,ÝÔ% cÑ*Ô*ˆˆåÔ% dÑ+Ô+ˆå	�i ¨D°'Ñ	:Ô	:€Bà×ÒÑÔÐØ×ÒÑÔÐå$Ô:¸2¼8Ô;KØ<CØBFðHñ Hô H€Kð ‡O‚OÑÔÐåÔ×#Ò#Ð$6¸¼ÑAÔAÐAõ Ô% b¤hÔ&8Ø
ŒÔ˜BœHÔ,¨b¬h¬m¸TñCô Cñ B€B„HÔ�b”hÔ*¨B¬HÔ,>Àõ Ô#Ø”Ô Ø”Ô Ø”(Ô$ØØØŒXŒ]Ø”HÔ(Ý”Kð!ñ !ô !ð !õ ”-Ô&×8Ò8Ñ:Ô:€Kå”]Ô)×7Ò7Ø
ŒÔ˜"œ(Ô*¨B¬HÔ,>Ø
ŒÔ˜BœHÔ.°ØÔ(ð 8ñ *ô *€Nð ×ÒÑÔÐåÔ×#Ò#Ð$5°r´xÑ@Ô@Ð@åŒNÑÔ€EÝ”-Ô&×1Ò1Ø
ŒÔ˜"œ(Ô*¨B¬HÔ,>Ø
ŒÔ˜bœhÔ0°"´(Ô2DØ�˜œÔ)°{ð 2ñ Dô D€Kð ‡O‚OÑÔÐÝ”-Ô&×7Ò7Ø
ŒÔ˜"œ(Ô*¨B¬HÔ,>Ø
ŒÔ˜bœhÔ0°"´(Ô2DØ�˜œÔ)°{ð 8ñ Dô D€Kð ‡O‚OÑÔÐÝ”-Ô&×<Ò<Ø
ŒÔ˜"œ(Ô*¨B¬HÔ,>Ø
ŒÔ˜bœhÔ0°"´(Ô2DØ�˜œÔ)°{ð =ñ Dô D€Kð ‡O‚OÑÔÐÝ,¨W¬^Ñ<Ô<€GÔà�Bˆ;ÐrX   c                 óð   — t          | |fi |¤Ž\  }}d}|j                             ¦   «         D ]H\  }}t          |j        ¦  «        D ].\  }}	t          |	t          j        j        j	        ¦  «        r|dz  }Œ/ŒI|S ©Nr   râ   )
r½  r³  rP  Ú	enumerateÚbodyrµ   r    r©  rª  ÚParfor)
rµ  r¨   r¶  r·  r¹  Ú	ret_countÚlabelÚblockrû   rK  s
             rV   rä   rä     s‘   € Ý(¨°DÐ@Ð@¸CÐ@Ð@�K€GˆRØ€Iàœ×,Ò,Ñ.Ô.ð ð ‰ˆˆuÝ  ¤Ñ,Ô,ð 	ð 	‰GˆAˆtÝ˜$¥¤Ô 4Ô ;Ñ<Ô<ð Ø˜Q‘�	øð	ð ÐrX   c                 ób   — t          | |fi |¤Ž\  }}t          |j        |j        j        ¦  «        S rZ   )r½  Ú_count_arrays_innerr³  r   r‘  ©rµ  r¨   r¶  r·  r¹  s        rV   ÚcountArraysrÉ  %  s4   € Ý(¨°DÐ@Ð@¸CÐ@Ð@�K€GˆRÝ˜wœ~¨r¬xÔ/?Ñ@Ô@Ð@rX   c                 ó"  — t          | |fi |¤Ž\  }}|j        }d}|                     ¦   «         D ]_\  }}t          |j        ¦  «        D ]E\  }	}
t          |
t          j        j        j	        ¦  «        r|t          |
j        j        ¦  «        z  }ŒFŒ`|S ©Nr   )r½  r³  rP  rÀ  rÁ  rµ   r    r©  rª  rÂ  rÈ   Ú
init_block)rµ  r¨   r¶  r·  r¹  r³  rÃ  rÄ  rÅ  rû   rK  s              rV   Úget_init_block_sizerÍ  )  s    € Ý(¨°DÐ@Ð@¸CÐ@Ð@�K€GˆRØŒ^€Fà€IàŸš™œð 7ð 7‰ˆˆuÝ  ¤Ñ,Ô,ð 	7ð 	7‰GˆAˆtÝ˜$¥¤Ô 4Ô ;Ñ<Ô<ð 7Ø�S ¤Ô!5Ñ6Ô6Ñ6�	øð	7ð ÐrX   c                 ó,  — d}t          ¦   «         }|                      ¦   «         D ]Ü\  }}t          |j        ¦  «        D ]Â\  }}t	          |t
          j        j        j        ¦  «        r6|j	         
                    ¦   «         }|j        |d<   |t          ||¦  «        z  }t	          |t          j        ¦  «        rIt	          ||j        j                 t"          j        ¦  «        r|                     |j        j        ¦  «         ŒÃŒÝ|t)          |¦  «        z  }|S rË  )ÚsetrP  rÀ  rÁ  rµ   r    r©  rª  rÂ  Ú	loop_bodyr¹   rÌ  rÇ  r   ÚAssignÚtargetr  r   ÚArrayCompatibleÚaddrÈ   )	r³  r‘  rÃ  Úarr_setrÄ  rÅ  rû   rK  Úparfor_blockss	            rV   rÇ  rÇ  6  s  € Ø€IÝ‰eŒe€GàŸš™œð 	.ð 	.‰ˆˆuÝ  ¤Ñ,Ô,ð 	.ð 	.‰GˆAˆtÝ˜$¥¤Ô 4Ô ;Ñ<Ô<ð IØ $¤× 3Ò 3Ñ 5Ô 5�Ø#'¤?�˜aÑ ØÕ0°ÀÑHÔHÑH�	Ý˜4¥¤Ñ+Ô+ð .Ý" 7¨4¬;Ô+;Ô#<Ý$)Ô$9ñ;ô ;ð.ð —’˜DœKÔ,Ñ-Ô-Ð-øð	.ð •�W‘”Ñ€IØÐrX   c                 óŠ   — t          | |fi |¤Ž\  }}d}|j                             ¦   «         D ]}|t          ||¦  «        z  }Œ|S rË  )r½  r³  ÚvaluesÚ_count_array_allocs_inner)rµ  r¨   r¶  r·  r¹  rÃ  rÅ  s          rV   ÚcountArrayAllocsrÚ  H  s\   € Ý(¨°DÐ@Ð@¸CÐ@Ð@�K€GˆRØ€Ià”×&Ò&Ñ(Ô(ð ?ð ?ˆØÕ.¨w¸Ñ>Ô>Ñ>ˆ	ˆ	àÐrX   c                 ó  — d}|j         D ]ù}t          |t          j        j        j        ¦  «        rG|t          | |j        ¦  «        z  }|j         	                    ¦   «         D ]}|t          | |¦  «        z  }Œt          |t          j        ¦  «        rrt          |j        t          j        ¦  «        rS|j        j        dk    rCt          t           | |j        ¦  «        dk    st          t           | |j        ¦  «        dk    r|dz  }Œú|S )Nr   rG  )ÚemptyÚnumpy)r-   znumba.np.unsafe.ndarrayrâ   )rÁ  rµ   r    r©  rª  rÂ  rÙ  rÌ  rÐ  rØ  r   rÑ  ÚvalueÚExprrM  r'   r&   )r�  rÅ  rÃ  rK  rˆ   s        rV   rÙ  rÙ  Q  s  € Ø€IØ”
ð ð ˆÝ�d�EœMÔ0Ô7Ñ8Ô8ð 	CØÕ2°7¸D¼OÑLÔLÑLˆIØ”^×*Ò*Ñ,Ô,ð Cð C�ØÕ6°wÀÑBÔBÑB�	�	å�t�RœYÑ'Ô'ð 	­J°t´zÅ2Ä7Ñ,KÔ,Kð 	Ø”J”M VÒ+Ð+Ý�=¨'°4´:Ñ>Ô>ÐBTÒTÐTÝ�¨°´Ñ<Ô<ØDòEð Eà˜‰NˆIøàÐrX   c                 ód   — t          | |fi |¤Ž\  }}t          ||j        |j        j        ¦  «        S rZ   )r½  Ú&_count_non_parfor_array_accesses_innerr³  r   r‘  rÈ  s        rV   ÚcountNonParforArrayAccessesrâ  b  s@   € Ý(¨°DÐ@Ð@¸CÐ@Ð@�K€GˆRÝ1°'¸7¼>Ø24´(Ô2BñDô Dð DrX   c           	      ó¾  — d}|€t          ¦   «         }|                     ¦   «         D �]´\  }}|j        D �]¥}t          |t          j        j        j        ¦  «        rX|                     |j	        j
        ¦  «         |j                             ¦   «         }|j        |d<   |t          | |||¦  «        z  }Œt          |¦  «        rSt          ||j        j        j
                 t"          j        ¦  «        r$t'          | t)          |¦  «        |¦  «        s|dz  }Œát+          |¦  «        rOt          ||j        j
                 t"          j        ¦  «        r%t'          | t)          |¦  «        |¦  «        s|dz  }�Œ?t          |t.          j        ¦  «        rLt          |j        t.          j        ¦  «        r-|j        j
        |v r|                     |j        j
        ¦  «         �Œ§�Œ¶|S r¿  )rÏ  rP  rÁ  rµ   r    r©  rª  rÂ  rÔ  Ú	index_varr  rÐ  r¹   rÌ  rá  r*   rÞ  r   rÓ  Ú_uses_indicesr,   r+   rÒ  r   rÑ  ÚVar)	Úf_irr³  r‘  Úparfor_indicesrÃ  rÄ  rÅ  ÚstmtrÖ  s	            rV   rá  rá  g  sê  € Ø€IØÐÝ™œˆàŸš™œð 5ñ 5‰ˆˆuØ”Jð 	5ñ 	5ˆDÝ˜$¥¤Ô 4Ô ;Ñ<Ô<ð 5Ø×"Ò" 4¤>Ô#6Ñ7Ô7Ð7Ø $¤× 3Ò 3Ñ 5Ô 5�Ø#'¤?�˜aÑ ØÕCØ˜-¨°.ñBô Bñ B�	�	õ ˜TÑ"Ô"ð 5¥z°'¸$¼*Ô:JÔ:OÔ2PÝÔ-ñ(/ô (/ð 5Ý7DØÕ6°tÑ<Ô<¸nñ8Nô 8Nð5ð ˜Q‘�	�	õ ˜TÑ"Ô"ð 	5¥z°'¸$¼+Ô:JÔ2KÝÔ)ñ(+ô (+ð 	5Ý3@ØÕ2°4Ñ8Ô8¸.ñ4Jô 4Jð	5ð ˜Q‘�	‘	õ ˜T¥2¤9Ñ-Ô-ð 5Ý˜TœZ­¬Ñ0Ô0ð5à”*”/ ^Ð3Ð3Ø×"Ò" 4¤;Ô#3Ñ4Ô4Ð4ùñ1	5ð4 ÐrX   c                 óú   — |j         |v rdS t          t          | |¦  «        }t          |t          j        ¦  «        r?|j        dk    r4t          d„ |j        D ¦   «         ¦  «        }t          ||z  ¦  «        dk    S dS )NTÚbuild_tuplec              3   ó$   K  — | ]}|j         V — Œd S rZ   r  )r¢   Úvs     rV   ú	<genexpr>z _uses_indices.<locals>.<genexpr>�  s$   è è € Ð5Ð5 !�q”vÐ5Ð5Ð5Ð5Ð5Ð5rX   r   F)
r  r'   r)   rµ   r   rß  rM  rÏ  rP  rÈ   )rç  ÚindexÚ	index_setÚind_defÚvarnamess        rV   rå  rå  ‰  s€   € Ø„z�YÐÐØˆtå•N D¨%Ñ0Ô0€GÝ�'�2œ7Ñ#Ô#ð .¨¬
°mÒ(CÐ(CÝÐ5Ð5 w¤}Ð5Ñ5Ô5Ñ5Ô5ˆÝ�8˜iÑ'Ñ(Ô(¨AÒ-Ð-àˆ5rX   c                   ó   — e Zd Zd„ ZdS )r�  c                 óö   — t          j        ¦   «         | _        || j        _        || j        _        || j        _        || j        _        d | j        _        d | j        _        d | j        _	        i | j        _
        d S rZ   )r   Ú	StateDictr   r¥  r¦  r¨   r�  r‘  r•  r’  r°  )rS   r¥  r¦  r¨   r·  s        rV   Ú__init__zTestPipeline.__init__–  sg   € ÝÔ'Ñ)Ô)ˆŒ
Ø(ˆŒ
ÔØ(ˆŒ
ÔØˆŒ
ŒØ$ˆŒ
ÔØ!ˆŒ
ÔØ!%ˆŒ
ÔØ#ˆŒ
ÔØ ˆŒ
ÔÐÐrX   N)rw   rN   rx   rö  r|   rX   rV   r�  r�  •  s#   € € € € € ð	!ð 	!ð 	!ð 	!ð 	!rX   r�  c                   ó$  — 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ed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z d„ Z!dS )ÚTestParforBasiczZSmoke tests for the parfors transforms. These tests check the most basic
    functionalityc                 óà   — t          j        | g|¢R Ž  t          j        t          j        d¦  «        d¦  «        }t          j        d¦  «        t          j        d¦  «        ||j        g| _        d S )Nç      (@©r  r  ç      @ç      @)r‹   rö  r¶   r  ÚarangeÚTÚsimple_args)rS   r¨   r>  s      rV   rö  zTestParforBasic.__init__§  s]   € ÝÔ  Ð-¨Ð-Ð-Ð-Ð-åŒJ•r”y ‘~”~ vÑ.Ô.ˆÝœI b™MœM­2¬9°R©=¬=¸!¸Q¼SÐAˆÔÐÐrX   c                 óê   — d„ }|                       t          ¦  «        5 }|                      |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Nc                  ó*   — t          j        d¦  «        S )Nr|   ©r¶   Úonesr|   rX   rV   Ú	test_implz0TestParforBasic.test_simple01.<locals>.test_impl®  s   € Ý”7˜2‘;”;ÐrX   ú'@do_scheduling' not found©ÚassertRaisesÚAssertionErrorrÚ   rê   r  Ú	exception©rS   r  Úraisess      rV   Útest_simple01zTestParforBasic.test_simple01­  s¯   € ð	ð 	ð 	à×Ò�~Ñ.Ô.ð 	"°&Ø�JŠJ�yÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�ŠÐ4µc¸&Ô:JÑ6KÔ6KÑLÔLÐLÐLÐLó   žA Á AÁAc                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó*   — t          j        d¦  «        S )N©râ   r  r|   rX   rV   r  z0TestParforBasic.test_simple02.<locals>.test_implµ  s   € Ý”7˜4‘=”=Ð rX   ©rÚ   ©rS   r  s     rV   Útest_simple02zTestParforBasic.test_simple02´  s)   € ð	!ð 	!ð 	!à�
Š
�9ÑÔÐÐÐrX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó*   — t          j        d¦  «        S ©N©râ   ró   r  r|   rX   rV   r  z0TestParforBasic.test_simple03.<locals>.test_implº  ó   € Ý”7˜6‘?”?Ð"rX   r  r  s     rV   Útest_simple03zTestParforBasic.test_simple03¹  ó)   € ð	#ð 	#ð 	#à�
Š
�9ÑÔÐÐÐrX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó*   — t          j        d¦  «        S ©Nrâ   r  r|   rX   rV   r  z0TestParforBasic.test_simple04.<locals>.test_impl¿  s   € Ý”7˜1‘:”:ÐrX   r  r  s     rV   Útest_simple04zTestParforBasic.test_simple04¾  s)   € ð	ð 	ð 	à�
Š
�9ÑÔÐÐÐrX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  óB   — t          j        dt           j        ¬¦  «        S )Nr  ©Údtype©r¶   r  Ú
complex128r|   rX   rV   r  z0TestParforBasic.test_simple07.<locals>.test_implÄ  s   € Ý”7˜6­¬Ð7Ñ7Ô7Ð7rX   r  r  s     rV   Útest_simple07zTestParforBasic.test_simple07Ã  s)   € ð	8ð 	8ð 	8à�
Š
�9ÑÔÐÐÐrX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  óT   — t          j        d¦  «        t          j        d¦  «        z   S r  r  r|   rX   rV   r  z0TestParforBasic.test_simple08.<locals>.test_implÉ  s   € Ý”7˜6‘?”?¥R¤W¨V¡_¤_Ñ4Ð4rX   r  r  s     rV   Útest_simple08zTestParforBasic.test_simple08È  s)   € ð	5ð 	5ð 	5à�
Š
�9ÑÔÐÐÐrX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó*   — t          j        d¦  «        S )N©râ   râ   r  r|   rX   rV   r  z0TestParforBasic.test_simple09.<locals>.test_implÎ  r  rX   r  r  s     rV   Útest_simple09zTestParforBasic.test_simple09Í  r  rX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó*   — t          j        d¦  «        S )N©r   r   r  r|   rX   rV   r  z0TestParforBasic.test_simple10.<locals>.test_implÓ  r  rX   r  r  s     rV   Útest_simple10zTestParforBasic.test_simple10Ò  r  rX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó0   — t          j        d¦  «        dz   S ©N©r  r  rW  r  r|   rX   rV   r  z0TestParforBasic.test_simple11.<locals>.test_implØ  s   € Ý”7˜8Ñ$Ô$ rÑ)Ð)rX   r  r  s     rV   Útest_simple11zTestParforBasic.test_simple11×  s)   € ð	*ð 	*ð 	*à�
Š
�9ÑÔÐÐÐrX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  óT   — t          j        d¦  «        t          j        d¦  «        z   S r4  r$  r|   rX   rV   r  z0TestParforBasic.test_simple12.<locals>.test_implÝ  s!   € Ý”7˜8Ñ$Ô$¥r¤}°RÑ'8Ô'8Ñ8Ð8rX   r  r  s     rV   Útest_simple12zTestParforBasic.test_simple12Ü  s)   € ð	9ð 	9ð 	9à�
Š
�9ÑÔÐÐÐrX   c                 óê   — d„ }|                       t          ¦  «        5 }|                      |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Nc                  ó*   — t          j        d¦  «        S rl  )r¶   r%  r|   rX   rV   r  z0TestParforBasic.test_simple13.<locals>.test_implâ  s   € Ý”= Ñ$Ô$Ð$rX   r  r  r  s      rV   Útest_simple13zTestParforBasic.test_simple13á  s¯   € ð	%ð 	%ð 	%à×Ò�~Ñ.Ô.ð 	"°&Ø�JŠJ�yÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�ŠÐ4µc¸&Ô:JÑ6KÔ6KÑLÔLÐLÐLÐLr  c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó<   — t          j        d¦  «        dd d…         S )Nr5  r   é   r  r|   rX   rV   r  z0TestParforBasic.test_simple14.<locals>.test_implé  s   € Ý”7˜8Ñ$Ô$ Q U¨ UÔ+Ð+rX   r  r  s     rV   Útest_simple14zTestParforBasic.test_simple14è  s)   € ð	,ð 	,ð 	,à�
Š
�9ÑÔÐÐÐrX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ó   — | | z   S rZ   r|   ©Úv1Úv2Úm1Úm2s       rV   r  z0TestParforBasic.test_simple15.<locals>.test_implî  ó   € Ø˜‘7ˆNrX   ©rÚ   r   r  s     rV   Útest_simple15zTestParforBasic.test_simple15í  ó4   € ð	ð 	ð 	àˆŒ
�9Ð0˜tÔ/Ð0Ð0Ð0Ð0Ð0Ð0rX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ó   — ||z   S rZ   r|   rC  s       rV   r  z0TestParforBasic.test_simple16.<locals>.test_impló  rH  rX   rI  r  s     rV   Útest_simple16zTestParforBasic.test_simple16ò  rK  rX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ó   — || z   S rZ   r|   rC  s       rV   r  z0TestParforBasic.test_simple17.<locals>.test_implø  rH  rX   rI  r  s     rV   Útest_simple17zTestParforBasic.test_simple17÷  rK  rX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ó\   — |j         t          j                             |¦  «        d         z   S r  )rÿ  r¶   ÚlinalgÚsvdrC  s       rV   r  z0TestParforBasic.test_simple18.<locals>.test_implþ  s"   € Ø”4�"œ)Ÿ-š-¨Ñ+Ô+¨AÔ.Ñ.Ð.rX   rI  r  s     rV   Útest_simple18zTestParforBasic.test_simple18ü  s4   € ð	/ð 	/ð 	/àˆŒ
�9Ð0˜tÔ/Ð0Ð0Ð0Ð0Ð0Ð0rX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ó,   — t          j        ||¦  «        S rZ   ©r¶   rm  rC  s       rV   r  z0TestParforBasic.test_simple19.<locals>.test_impl  ó   € Ý”6˜"˜b‘>”>Ð!rX   rI  r  s     rV   Útest_simple19zTestParforBasic.test_simple19  ó4   € ð	"ð 	"ð 	"àˆŒ
�9Ð0˜tÔ/Ð0Ð0Ð0Ð0Ð0Ð0rX   c                 óæ   — d„ }|                       t          ¦  «        5 } | j        |g| j        ¢R Ž  d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 ó,   — t          j        ||¦  «        S rZ   rY  rC  s       rV   r  z0TestParforBasic.test_simple20.<locals>.test_impl
  rZ  rX   r  )r  r	  rÚ   r   rê   r  r
  r  s      rV   Útest_simple20zTestParforBasic.test_simple20  s¼   € ð	"ð 	"ð 	"ð ×Ò�~Ñ.Ô.ð 	5°&ØˆDŒJ�yÐ4 4Ô#3Ð4Ð4Ð4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5à�ŠÐ4µc¸&Ô:JÑ6KÔ6KÑLÔLÐLÐLÐLs   ž>¾AÁAc                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ó,   — t          j        | | ¦  «        S rZ   rY  rC  s       rV   r  z0TestParforBasic.test_simple21.<locals>.test_impl  rZ  rX   rI  r  s     rV   Útest_simple21zTestParforBasic.test_simple21  r\  rX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ó0   — t          j        | | z   ¦  «        S rZ   r„  rC  s       rV   r  z0TestParforBasic.test_simple22.<locals>.test_impl  s   € Ý”6˜"˜r™'‘?”?Ð"rX   rI  r  s     rV   Útest_simple22zTestParforBasic.test_simple22  s4   € ð	#ð 	#ð 	#àˆŒ
�9Ð0˜tÔ/Ð0Ð0Ð0Ð0Ð0Ð0rX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ód   — d| z  }d| z  }dt          j        |dz  |dz  z   dk     ¦  «        z  dz  S )Nró   r  râ   r  r„  )rD  rE  rF  rG  r£   Úys         rV   r  z0TestParforBasic.test_simple23.<locals>.test_impl  s>   € Ø�B‘ˆAØ�B‘ˆAØ•r”v˜a ™d Q¨¡T™k¨AšoÑ.Ô.Ñ.°Ñ3Ð3rX   rI  r  s     rV   Útest_simple23zTestParforBasic.test_simple23  s6   € ð	4ð 	4ð 	4ð 	ˆŒ
�9Ð0˜tÔ/Ð0Ð0Ð0Ð0Ð0Ð0rX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó–   — d} t          j        | | f¦  «        }t          j        | ¦  «        }t          j        |d d …|f         ¦  «        S )Nr?  )r¶   r  rþ  rx  )r÷   rz  rˆ   s      rV   r  z0TestParforBasic.test_simple24.<locals>.test_impl$  s?   € ØˆAÝ”˜˜A˜‘”ˆAÝ”	˜!‘”ˆAÝ”6˜!˜A˜A˜A˜q˜Dœ'‘?”?Ð"rX   r  r  s     rV   Útest_simple24zTestParforBasic.test_simple24#  s+   € ð	#ð 	#ð 	#ð
 	�
Š
�9ÑÔÐÐÐrX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  dS )zAsame as corresponding test_simple_<n> case but using operator.addc                 ó,   — t          j        | | ¦  «        S rZ   ©ÚoperatorrÔ  rC  s       rV   r  z:TestParforBasic.test_simple_operator_15.<locals>.test_impl.  ó   € Ý”<  BÑ'Ô'Ð'rX   NrI  r  s     rV   Útest_simple_operator_15z'TestParforBasic.test_simple_operator_15+  s6   € ð	(ð 	(ð 	(ð 	ˆŒ
�9Ð0˜tÔ/Ð0Ð0Ð0Ð0Ð0Ð0rX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ó,   — t          j        ||¦  «        S rZ   ro  rC  s       rV   r  z:TestParforBasic.test_simple_operator_16.<locals>.test_impl5  rq  rX   rI  r  s     rV   Útest_simple_operator_16z'TestParforBasic.test_simple_operator_163  ó6   € ð	(ð 	(ð 	(ð 	ˆŒ
�9Ð0˜tÔ/Ð0Ð0Ð0Ð0Ð0Ð0rX   c                 ó2   — d„ } | j         |g| j        ¢R Ž  d S )Nc                 ó,   — t          j        || ¦  «        S rZ   ro  rC  s       rV   r  z:TestParforBasic.test_simple_operator_17.<locals>.test_impl<  rq  rX   rI  r  s     rV   Útest_simple_operator_17z'TestParforBasic.test_simple_operator_17:  rv  rX   c                 ól   — d„ }d„ }t          j        d¦  «        }|                      |||g¬¦  «         d S )Nc                 ó   — | dz  } d| d d …<   d S )Nrâ   r  r|   ©r‡   s    rV   r  z5TestParforBasic.test_inplace_alias.<locals>.test_implC  s   € Ø�‰FˆAØˆAˆaˆaˆa‰DˆDˆDrX   c                 óF   — t           j                             | |¦  «         d S rZ   ©r¶   rÄ   Úassert_equalr†   s     rV   Úcomparerz4TestParforBasic.test_inplace_alias.<locals>.comparerG  ó    € ÝŒJ×#Ò# A qÑ)Ô)Ð)Ð)Ð)rX   râ   ©r²   ©r¶   r  rÚ   )rS   r  r€  r£   s       rV   Útest_inplace_aliasz"TestParforBasic.test_inplace_aliasA  sO   € ð	ð 	ð 	ð	*ð 	*ð 	*õ ŒG�A‰JŒJˆØ�
Š
�9˜a°X°Jˆ
Ñ?Ô?Ð?Ð?Ð?rX   N)"rw   rN   rx   rT  rö  r  r  r  r  r&  r)  r-  r1  r6  r9  r<  r@  rJ  rN  rQ  r<   rV  r;   r[  r_  rb  re  ri  rl  r=   rr  ru  ry  r„  r|   rX   rV   rø  rø  ¢  s  € € € € € ðð ðBð Bð BðMð Mð Mðð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
ð ð ð
Mð Mð Mðð ð ð
1ð 1ð 1ð
1ð 1ð 1ð
1ð 1ð 1ð
 ð1ð 1ñ „\ð1ð
 ð1ð 1ñ „Zð1ð
 ðMð Mñ „ZðMð ð1ð 1ñ „Zð1ð
1ð 1ð 1ð
1ð 1ð 1ðð ð ð ð1ð 1ñ „]ð1ð ð1ð 1ñ „]ð1ð ð1ð 1ñ „]ð1ð
@ð 
@ð 
@ð 
@ð 
@rX   rø  c                   ó:   — e Zd ZdZd„ Zd„ Zed„ ¦   «         Zd„ ZdS )ÚTestParforNumericalMiscz+ Miscellaneous 'classical' numerical tests c                 óø   — d„ }|                       |dd¬¦  «         |                      t          |t          j        f¦  «        d¦  «         |                      t          |t          j        f¦  «        d¦  «         d S )Nc                 óä   — dt           j                             | ¦  «        z  dz
  }dt           j                             | ¦  «        z  dz
  }dt          j        |dz  |dz  z   dk     ¦  «        z  | z  S )Nró   râ   r  )r¶   ÚrandomÚranfrx  )r÷   r£   rh  s      rV   r  z2TestParforNumericalMisc.test_pi.<locals>.test_implS  sf   € Ø•B”I—N’N 1Ñ%Ô%Ñ%¨Ñ)ˆAØ•B”I—N’N 1Ñ%Ô%Ñ%¨Ñ)ˆAØ•r”v˜a ™d Q¨¡T™k¨AšoÑ.Ô.Ñ.°Ñ2Ð2rX   i † râ   ©Údecimalr   )rÚ   rÆ   rä   r   Úint64rÉ  Úintpr  s     rV   Útest_pizTestParforNumericalMisc.test_piR  sy   € ð	3ð 	3ð 	3ð
 	�
Š
�9˜f¨aˆ
Ñ0Ô0Ð0Ø×Ò� iµ%´+°ÑAÔAÀ1ÑEÔEÐEØ×Ò� Yµ´°Ñ>Ô>ÀÑBÔBÐBÐBÐBrX   c                 óˆ   — t           j        d d …         fdz  }|                      t          t          |¦  «        d¦  «         d S ©Nr€   râ   )r    Úfloat64rÆ   rä   rj  ©rS   r¨   s     rV   Útest_blackscholesz)TestParforNumericalMisc.test_blackscholes\  sA   € å”˜a˜a˜aÔ Ð# aÑ'ˆØ×Ò�Õ&7¸Ñ>Ô>ÀÑBÔBÐBÐBÐBrX   c                 ó>  — t           j        d d …         t           j        d d …d d …f         t           j        d d …         t           j        f}|                      t	          t
          |¦  «        d¦  «         |                      t          t
          |¦  «        d¦  «         d S ©Nró   râ   )r    r’  r�  rÆ   rä   rr  rÚ  r“  s     rV   Útest_logistic_regressionz0TestParforNumericalMisc.test_logistic_regressiona  s…   € å”˜a˜a˜aÔ ¥%¤-°°°°!°!°!°Ô"4µe´mÀAÀAÀAÔ6FÝ”ðˆà×Ò�¥g¨tÑ4Ô4°aÑ8Ô8Ð8Ø×ÒÕ)­'°4Ñ8Ô8¸!Ñ<Ô<Ð<Ð<Ð<rX   c                 ó  — t           j                             d¦  «         d}d}d}t           j                             ||f¦  «        }t           j                             ||f¦  «        }|                      t
          ||d|d¬¦  «         t          j        t          j        dd¦  «        t          j	        t          j	        t          j        t          j        dd¦  «        f}|  
                    t          t
          |¦  «        d¦  «         d S )	Nr   é   r  r  râ   r‹  ró   ÚC)r¶   r‰  ÚseedrŠ  rÚ   r�  r   ÚArrayr’  rŽ  rÆ   râ  )rS   r‹  r†  Úcentersrz  rŠ  Úarg_typss          rV   Útest_kmeansz#TestParforNumericalMisc.test_kmeansh  sí   € Ý
Œ	�Š�qÑÔÐØˆØˆØˆÝŒI�NŠN˜A˜q˜6Ñ"Ô"ˆÝœŸš¨°!¨Ñ5Ô5ˆØ�
Š
Õ&¨¨7°A°~ØLMð 	ñ 	Oô 	Oð 	Oõ ”K¥¤¨q°#Ñ6Ô6½¼
ÅEÄJÝ”K¥¤¨q°#Ñ6Ô6ð8ˆà×ÒÝ'Õ(;¸XÑFÔFÈñ	Kô 	Kð 	Kð 	Kð 	KrX   N)	rw   rN   rx   rT  r�  r”  r;   r—  rŸ  r|   rX   rV   r†  r†  N  sm   € € € € € à5Ð5ðCð Cð CðCð Cð Cð
 ð=ð =ñ „Zð=ðKð Kð Kð Kð KrX   r†  c                   ó¬   — e Zd ZdZe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S )ÚTestParforNumPyz'Tests NumPy functionality under parforsc                 óº   — d„ }t          j        ddd¦  «                             dd¦  «        }t          j        ddd¦  «        }|                      |||¦  «         d S )Nc                 ó,   — t          j        | |¦  «        S rZ   rY  ©r‡   rí  s     rV   r  z-TestParforNumPy.test_mvdot.<locals>.test_impl  ó   € Ý”6˜!˜Q‘<”<ÐrX   r   râ   r?  ró   r  )r¶   rõ   r  rÚ   )rS   r  rz  rí  s       rV   Ú
test_mvdotzTestParforNumPy.test_mvdot}  se   € ð	 ð 	 ð 	 õ ŒK˜˜1˜bÑ!Ô!×)Ò)¨!¨RÑ0Ô0ˆÝŒK˜˜1˜bÑ!Ô!ˆà�
Š
�9˜a Ñ#Ô#Ð#Ð#Ð#rX   c                 ó\  ‡— t           j        t           j        t           j        t           j        fD ]{Šˆfd„}|                      |d¦  «         |                      t          |t          j	        f¦  «        d¦  «         |                      t          |t          j        f¦  «        d¦  «         Œ|d S )Nc                 ót   •— t          j        | ¦  «        } ‰|¦  «        }|                     ¦   «         }||z   S rZ   ©r¶   r  rx  )r÷   rz  rš  ÚBrM  s       €rV   r  zBTestParforNumPy.test_fuse_argmin_argmax_max_min.<locals>.test_impl‰  s3   ø€ Ý”G˜A‘J”J�Ø�B�q‘E”E�Ø—E’E‘G”G�Ø˜1‘u�rX   é   râ   r   )r¶   r€  ÚargmaxÚminÚmaxrÚ   rÆ   rä   r   r�  rÉ  rŽ  )rS   r  rM  s     @rV   Útest_fuse_argmin_argmax_max_minz/TestParforNumPy.test_fuse_argmin_argmax_max_min‡  s«   ø€ Ý”9�bœi­¬µ´Ð8ð 	Gð 	GˆBðð ð ð ð ð
 �JŠJ�y #Ñ&Ô&Ð&Ø×Ò�\¨)µe´k°_ÑEÔEÀqÑIÔIÐIØ×Ò�[¨µU´Z°MÑBÔBÀAÑFÔFÐFÐFð	Gð 	GrX   c                 ój   — d„ }|                       t          |t          j        f¦  «        d¦  «         d S )Nc                 ó0   — t          | ¦  «        }|d         S rË  r   ©r÷   rz  s     rV   r  zDTestParforNumPy.test_np_random_func_direct_import.<locals>.test_impl“  s   € Ý�a‘”ˆAØ�Q”4ˆKrX   râ   ©rÆ   rä   r   r�  r  s     rV   Ú!test_np_random_func_direct_importz1TestParforNumPy.test_np_random_func_direct_import’  s=   € ð	ð 	ð 	ð 	×Ò� iµ%´+°ÑAÔAÀ1ÑEÔEÐEÐEÐErX   c                 óî   — d„ }d„ }d„ }dddt          dd¦  «        t          dd¦  «        fD ]G}|                      ||¦  «         |                      |d	|¦  «         |                      |d	|d	¦  «         ŒHd S )
Nc                 ó*   — t          j        | ¦  «        S rZ   ©r¶   rþ  rö   s    rV   Ú
test_impl1z/TestParforNumPy.test_arange.<locals>.test_impl1š  ó   € Ý”9˜Q‘<”<ÐrX   c                 ó,   — t          j        | |¦  «        S rZ   r·  ©Úsr÷   s     rV   Ú
test_impl2z/TestParforNumPy.test_arange.<locals>.test_impl2�  s   € Ý”9˜Q ‘?”?Ð"rX   c                 ó.   — t          j        | ||¦  «        S rZ   r·  ©r¼  r÷   Úts      rV   Ú
test_impl3z/TestParforNumPy.test_arange.<locals>.test_impl3   s   € Ý”9˜Q  1Ñ%Ô%Ð%rX   é   é€   ç      >@r  r€   ró   ©ÚcomplexrÚ   ©rS   r¸  r½  rÁ  Úargs        rV   Útest_arangezTestParforNumPy.test_arange˜  sª   € ð	 ð 	 ð 	 ð	#ð 	#ð 	#ð	&ð 	&ð 	&ð ˜˜T¥7¨1¨Q¡<¤<µ¸¸1±´Ð>ð 	.ð 	.ˆCØ�JŠJ�z 3Ñ'Ô'Ð'Ø�JŠJ�z 1 cÑ*Ô*Ð*Ø�JŠJ�z 1 c¨1Ñ-Ô-Ð-Ð-ð	.ð 	.rX   c                 ó¬   — d„ }d„ }d„ }dD ]G}|                       ||¦  «         |                       |d|¦  «         |                       |d|d¦  «         ŒHd S )Nc                 óB   — t          j        | t           j        ¬¦  «        S ©Nr"  ©r¶   rþ  Úfloat32rö   s    rV   r¸  z5TestParforNumPy.test_arange_dtype.<locals>.test_impl1ª  s   € Ý”9˜Q¥b¤jÐ1Ñ1Ô1Ð1rX   c                 óD   — t          j        | |t           j        ¬¦  «        S rÌ  rÍ  r»  s     rV   r½  z5TestParforNumPy.test_arange_dtype.<locals>.test_impl2­  s   € Ý”9˜Q ­¬Ð4Ñ4Ô4Ð4rX   c                 óF   — t          j        | ||t           j        ¬¦  «        S rÌ  rÍ  r¿  s      rV   rÁ  z5TestParforNumPy.test_arange_dtype.<locals>.test_impl3°  s   € Ý”9˜Q  1­B¬JÐ7Ñ7Ô7Ð7rX   )rÂ  rÃ  rÄ  ró   r  rÇ  s        rV   Útest_arange_dtypez!TestParforNumPy.test_arange_dtype¨  s�   € ð	2ð 	2ð 	2ð	5ð 	5ð 	5ð	8ð 	8ð 	8ð #ð 	.ð 	.ˆCØ�JŠJ�z 3Ñ'Ô'Ð'Ø�JŠJ�z 1 cÑ*Ô*Ð*Ø�JŠJ�z 1 c¨1Ñ-Ô-Ð-Ð-ð	.ð 	.rX   c                 ó¼   — d„ }d„ }dddt          dd¦  «        t          dd¦  «        fD ]1}|                      |d|¦  «         |                      |d|d	¦  «         Œ2d S )
Nc                 ó,   — t          j        | |¦  «        S rZ   rô   )ÚstartÚstops     rV   r¸  z1TestParforNumPy.test_linspace.<locals>.test_impl1º  s   € Ý”;˜u dÑ+Ô+Ð+rX   c                 ó.   — t          j        | ||¦  «        S rZ   rô   )rÔ  rÕ  Únums      rV   r½  z1TestParforNumPy.test_linspace.<locals>.test_impl2½  s   € Ý”;˜u d¨CÑ0Ô0Ð0rX   rÂ  rÃ  rÄ  r  r€   ró   é   rÅ  )rS   r¸  r½  rÈ  s       rV   Útest_linspacezTestParforNumPy.test_linspace¸  s‡   € ð	,ð 	,ð 	,ð	1ð 	1ð 	1ð ˜˜T¥7¨1¨Q¡<¤<µ¸¸1±´Ð>ð 	/ð 	/ˆCØ�JŠJ�z 1 cÑ*Ô*Ð*Ø�JŠJ�z 1 c¨2Ñ.Ô.Ð.Ð.ð	/ð 	/rX   c           
      ó\  ‡ — d„ }d}t           j                             |¦  «        }t           j                             d|df¬¦  «        }‰                      ||¦  «         ‰                      ||¦  «         ‰                      t          |t          j        t          j	        dd¦  «        f¦  «        d¦  «         ‰                      t          |t          j        t          j	        dd¦  «        f¦  «        d¦  «         ˆ fd	„}‰  
                    ||¦  «         ‰                      ||¦  «         d S )
Nc                 ó*   — |                       ¦   «         S rZ   ©Úmean©rz  s    rV   r  z,TestParforNumPy.test_mean.<locals>.test_implÅ  s   € Ø—6’6‘8”8ˆOrX   éd   r  r  ©Úsizerâ   rš  ró   c                  ó.   •— ‰                       d¦  «        S r  ©r  r\   s   €rV   ú<lambda>z+TestParforNumPy.test_mean.<locals>.<lambda>Ð  ó   ø€ ˜4×5Ò5°aÑ8Ô8€ rX   ©r¶   r‰  rŠ  ÚrandintrÚ   rÆ   rä   r   rœ  r’  rà   ræ   )rS   r  r‹  rz  rª  Údata_gens   `     rV   Ú	test_meanzTestParforNumPy.test_meanÄ  s  ø€ ð	ð 	ð 	àˆÝŒI�NŠN˜1ÑÔˆÝŒI×Ò˜b¨¨1 vÐÑ.Ô.ˆØ�
Š
�9˜aÑ Ô Ð Ø�
Š
�9˜aÑ Ô Ð Ø×Ò� iµ%´+½e¼mÈQÐPSÑ2TÔ2TÐ1WÑXÔXÐZ[Ñ\Ô\Ð\Ø×Ò� iµ%´+½e¼mÈQÐPSÑ2TÔ2TÐ1WÑXÔXÐZ[Ñ\Ô\Ð\ð 9Ð8Ð8Ð8ˆØ×Ò˜I xÑ0Ô0Ð0Ø×#Ò# I¨xÑ8Ô8Ð8Ð8Ð8rX   c           
      ó˜  ‡ — d„ }d}t           j                             |¦  «        }t           j                             d|df¬¦  «        }|d|z  z   }‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      t          |t          j        t          j	        dd¦  «        f¦  «        d	¦  «         ‰                      t          |t          j        t          j	        d	d¦  «        f¦  «        d	¦  «         ˆ fd
„}‰  
                    ||¦  «         ‰                      ||¦  «         d S )Nc                 ó*   — |                       ¦   «         S rZ   )ÚvarrÞ  s    rV   r  z+TestParforNumPy.test_var.<locals>.test_implÕ  ó   € Ø—5’5‘7”7ˆNrX   rß  r  r  rà  ù              ð?râ   rš  ró   c                  ó.   •— ‰                       d¦  «        S r  rã  r\   s   €rV   rä  z*TestParforNumPy.test_var.<locals>.<lambda>â  rå  rX   ræ  )rS   r  r‹  rz  rª  rš  rè  s   `      rV   Útest_varzTestParforNumPy.test_varÔ  s=  ø€ ð	ð 	ð 	àˆÝŒI�NŠN˜1ÑÔˆÝŒI×Ò˜b¨¨1 vÐÑ.Ô.ˆØ��Q‘‰JˆØ�
Š
�9˜aÑ Ô Ð Ø�
Š
�9˜aÑ Ô Ð Ø�
Š
�9˜aÑ Ô Ð Ø×Ò� iµ%´+½e¼mÈQÐPSÑ2TÔ2TÐ1WÑXÔXÐZ[Ñ\Ô\Ð\Ø×Ò� iµ%´+½e¼mÈQÐPSÑ2TÔ2TÐ1WÑXÔXÐZ[Ñ\Ô\Ð\ð 9Ð8Ð8Ð8ˆØ×Ò˜I xÑ0Ô0Ð0Ø×#Ò# I¨xÑ8Ô8Ð8Ð8Ð8rX   c                 ó^  ‡ — d„ }d}t           j                             |¦  «        }t           j                             d|df¬¦  «        }|d|z  z   }‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         t          j        t
          j        dd¦  «        f}‰                      t          ||¦  «        d	¦  «         ‰                      t          ||¦  «        d	¦  «         ˆ fd
„}‰  
                    ||¦  «         ‰                      ||¦  «         d S )Nc                 ó*   — |                       ¦   «         S rZ   )ÚstdrÞ  s    rV   r  z+TestParforNumPy.test_std.<locals>.test_implç  rí  rX   rß  r  r  rà  rî  râ   rš  ró   c                  ó.   •— ‰                       d¦  «        S r  rã  r\   s   €rV   rä  z*TestParforNumPy.test_std.<locals>.<lambda>õ  rå  rX   )r¶   r‰  rŠ  rç  rÚ   r   rœ  r’  rÆ   rä   rà   ræ   )rS   r  r‹  rz  rª  rš  Úargtyrè  s   `       rV   Útest_stdzTestParforNumPy.test_stdæ  s+  ø€ ð	ð 	ð 	àˆÝŒI�NŠN˜1ÑÔˆÝŒI×Ò˜b¨¨1 vÐÑ.Ô.ˆØ��Q‘‰JˆØ�
Š
�9˜aÑ Ô Ð Ø�
Š
�9˜aÑ Ô Ð Ø�
Š
�9˜aÑ Ô Ð Ý”�Uœ]¨A¨sÑ3Ô3Ð5ˆØ×Ò� i°Ñ7Ô7¸Ñ;Ô;Ð;Ø×Ò� i°Ñ7Ô7¸Ñ;Ô;Ð;ð 9Ð8Ð8Ð8ˆØ×Ò˜I xÑ0Ô0Ð0Ø×#Ò# I¨xÑ8Ô8Ð8Ð8Ð8rX   c                 ój   — d„ }|                       t          |t          j        f¦  «        d¦  «         dS )zŒ
        Test function with only a random call to make sure a random function
        like ranf is actually translated to a parfor.
        c                 óH   — t           j                             | | f¦  «        }|S rZ   )r¶   r‰  rŠ  r²  s     rV   r  z5TestParforNumPy.test_random_parfor.<locals>.test_implþ  s   € Ý”	—’  1˜vÑ&Ô&ˆAØˆHrX   râ   Nr³  r  s     rV   Útest_random_parforz"TestParforNumPy.test_random_parforù  s=   € ð
	ð 	ð 	ð 	×Ò� iµ%´+°ÑAÔAÀ1ÑEÔEÐEÐEÐErX   c                 óD  — d„ }d}|                       |t          j        |¦  «        f¦  «        }|                     |¦  «        } ||¦  «        }t          j                             ||d¬¦  «         |                      t          |t          j
        f¦  «        d¦  «         d S )Nc                 óæ  — t           j                             | | f¬¦  «        }t           j                             | | ¦  «        }t           j                             dd| | f¦  «        }t           j                             d| | f¦  «        }t           j                             dd| | f¬¦  «        }t           j                             ddd| | f¦  «        }t          j        ||z   |z   |z   |z   |z   ¦  «        S ©Nrà  ç        rW  râ   r  )Úhighrá  ró   )	r¶   r‰  Ústandard_normalr   ÚnormalÚ	chisquarerç  Ú
triangularrx  ©r÷   rz  rª  rš  r†  ÚEÚFs          rV   r  z/TestParforNumPy.test_randoms.<locals>.test_impl  sÎ   € Ý”	×)Ò)°°1¨vÐ)Ñ6Ô6ˆAÝ”	—’  1Ñ%Ô%ˆAÝ”	× Ò   c¨A¨q¨6Ñ2Ô2ˆAÝ”	×#Ò# C¨!¨Q¨Ñ0Ô0ˆAÝ”	×!Ò! !¨!°1°a°&Ð!Ñ9Ô9ˆAÝ”	×$Ò$ Q¨¨1¨q°!¨fÑ5Ô5ˆAÝ”6˜!˜A™#˜a™% ™' !™) A™+Ñ&Ô&Ð&rX   rÃ  gš™™™™™©?)Úrtolrâ   )r—   r    r   rÃ   r¶   rÄ   Úassert_allcloserÆ   rä   r   r�  ©rS   r  r÷   rª   rÐ   Ú	py_outputs         rV   Útest_randomszTestParforNumPy.test_randoms  sŸ   € ð	'ð 	'ð 	'ð ˆØ×&Ò& yµ5´<À±?´?Ð2DÑEÔEˆØ×*Ò*¨1Ñ-Ô-ˆØ�I˜a‘L”Lˆ	å
Œ
×"Ò" =°)À$Ð"ÑGÔGÐGØ×Ò� iµ%´+°ÑAÔAÀ1ÑEÔEÐEÐEÐErX   c                 ó,  — d„ }d}|                       |t          j        |¦  «        f¦  «        }|                     |¦  «        } ||¦  «        }|                      ||¦  «         |                      t          |t          j        f¦  «        d¦  «         d S )Nc                 ó¤  — t           j                             | | f¬¦  «        }t           j                             | | ¦  «        }t           j                             dd| | f¦  «        }t           j                             d| | f¦  «        }t           j                             dd| | f¬¦  «        }t           j                             ddd| | f¦  «        }dS rü  )r¶   r‰  rÿ  r   r   r  rç  r  r  s          rV   r  z4TestParforNumPy.test_dead_randoms.<locals>.test_impl  s¯   € Ý”	×)Ò)°°1¨vÐ)Ñ6Ô6ˆAÝ”	—’  1Ñ%Ô%ˆAÝ”	× Ò   c¨A¨q¨6Ñ2Ô2ˆAÝ”	×#Ò# C¨!¨Q¨Ñ0Ô0ˆAÝ”	×!Ò! !¨!°1°a°&Ð!Ñ9Ô9ˆAÝ”	×$Ò$ Q¨¨1¨q°!¨fÑ5Ô5ˆAØ�1rX   rÃ  r   )r—   r    r   rÃ   rÆ   rä   r   r�  r  s         rV   Útest_dead_randomsz!TestParforNumPy.test_dead_randoms  s˜   € ð	ð 	ð 	ð ˆØ×&Ò& yµ5´<À±?´?Ð2DÑEÔEˆØ×*Ò*¨1Ñ-Ô-ˆØ�I˜a‘L”Lˆ	Ø×Ò˜¨	Ñ2Ô2Ð2Ø×Ò� iµ%´+°ÑAÔAÀ1ÑEÔEÐEÐEÐErX   c                 ó   ‡ — d„ }d„ }d}t           j                             |¦  «        }t           j                             d|¬¦  «                             t           j        ¦  «        }t           j                             ||f¦  «        }t          j        t           j        t           j        g¦  «        }‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         d}||fD ]¸}	‰  	                    |	t          j        d d …         f¦  «        }
‰                      t          ¦  «        5 }|
                     t          j        g t           j        ¬¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                      |t!          |j        ¦  «        ¦  «         Œ¹ˆ fd„}‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         d S )	Nc                 ó*   — |                       ¦   «         S rZ   ©r­  rÞ  s    rV   r¸  z,TestParforNumPy.test_min.<locals>.test_impl1'  rí  rX   c                 ó*   — t          j        | ¦  «        S rZ   )r¶   r­  rÞ  s    rV   r½  z,TestParforNumPy.test_min.<locals>.test_impl2*  ó   € Ý”6˜!‘9”9ÐrX   éÓ   r  rà  zDzero-size array to reduction operation minimum which has no identityr"  c                  ó.   •— ‰                       d¦  «        S r  rã  r\   s   €rV   rä  z*TestParforNumPy.test_min.<locals>.<lambda>E  rå  rX   ©r¶   r‰  rŠ  rç  ÚastypeÚint32rˆ  ÚinfrÚ   r—   r   r�  r  r¿   rÃ   rê   r  r
  rà   ræ   ©rS   r¸  r½  r÷   rz  rª  rš  r†  rï   rÞ   ÚpcfuncÚerè  s   `            rV   Útest_minzTestParforNumPy.test_min&  s›  ø€ ð	ð 	ð 	ð	ð 	ð 	ð ˆÝŒI�NŠN˜1ÑÔˆÝŒI×Ò˜b qÐÑ)Ô)×0Ò0µ´Ñ:Ô:ˆÝŒI�NŠN˜A˜q˜6Ñ"Ô"ˆÝŒH•b”f�bœfÐ%Ñ&Ô&ˆØ�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!ð/ˆà Ð,ð 	1ð 	1ˆDØ×*Ò*¨4µ%´+¸a¸a¸a´.Ð1BÑCÔCˆFØ×"Ò"¥:Ñ.Ô.ð A°!Ø×"Ò"¥2¤8¨Bµb´hÐ#?Ñ#?Ô#?Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aà�MŠM˜#�s 1¤;Ñ/Ô/Ñ0Ô0Ð0Ð0ð 9Ð8Ð8Ð8ˆØ×Ò˜J¨Ñ1Ô1Ð1Ø×#Ò# J°Ñ9Ô9Ð9Ø×Ò˜J¨Ñ1Ô1Ð1Ø×#Ò# J°Ñ9Ô9Ð9Ð9Ð9s   Æ-4G-Ç-G1	Ç4G1	c                 ó  ‡ — d„ }d„ }d}t           j                             |¦  «        }t           j                             d|¬¦  «                             t           j        ¦  «        }t           j                             ||f¦  «        }t          j        t           j         t           j         g¦  «        }‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         d}||fD ]¸}	‰  	                    |	t          j        d d …         f¦  «        }
‰                      t          ¦  «        5 }|
                     t          j        g t           j        ¬¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                      |t!          |j        ¦  «        ¦  «         Œ¹ˆ fd„}‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         d S )	Nc                 ó*   — |                       ¦   «         S rZ   )r®  rÞ  s    rV   r¸  z,TestParforNumPy.test_max.<locals>.test_impl1L  rí  rX   c                 ó*   — t          j        | ¦  «        S rZ   )r¶   r®  rÞ  s    rV   r½  z,TestParforNumPy.test_max.<locals>.test_impl2O  r  rX   r  r  rà  zDzero-size array to reduction operation maximum which has no identityr"  c                  ó.   •— ‰                       d¦  «        S r  rã  r\   s   €rV   rä  z*TestParforNumPy.test_max.<locals>.<lambda>j  rå  rX   r  r  s   `            rV   Útest_maxzTestParforNumPy.test_maxK  sŸ  ø€ ð	ð 	ð 	ð	ð 	ð 	ð ˆÝŒI�NŠN˜1ÑÔˆÝŒI×Ò˜b qÐÑ)Ô)×0Ò0µ´Ñ:Ô:ˆÝŒI�NŠN˜A˜q˜6Ñ"Ô"ˆÝŒH•r”v�g¥¤˜wÐ'Ñ(Ô(ˆØ�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!ð/ˆà Ð,ð 	1ð 	1ˆDØ×*Ò*¨4µ%´+¸a¸a¸a´.Ð1BÑCÔCˆFØ×"Ò"¥:Ñ.Ô.ð A°!Ø×"Ò"¥2¤8¨Bµb´hÐ#?Ñ#?Ô#?Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aà�MŠM˜#�s 1¤;Ñ/Ô/Ñ0Ô0Ð0Ð0ð 9Ð8Ð8Ð8ˆØ×Ò˜J¨Ñ1Ô1Ð1Ø×#Ò# J°Ñ9Ô9Ð9Ø×Ò˜J¨Ñ1Ô1Ð1Ø×#Ò# J°Ñ9Ô9Ð9Ð9Ð9s   Æ/4G/Ç/G3	Ç6G3	c                 óà  ‡ — d„ }d„ }d}t          j        g d¢¦  «        }t           j                             d|¬¦  «                             t           j        ¦  «        }t           j                             ||f¦  «        }t          j        ddt           j        d	d
g¦  «        }‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         d}||fD ]¸}	‰  	                    |	t          j        d d …         f¦  «        }
‰                      t          ¦  «        5 }|
                     t          j        g t           j        ¬¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                      |t!          |j        ¦  «        ¦  «         Œ¹ˆ fd„}‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         d S )Nc                 ó*   — |                       ¦   «         S rZ   )r¬  rÞ  s    rV   r¸  z/TestParforNumPy.test_argmax.<locals>.test_impl1q  ó   € Ø—8’8‘:”:ÐrX   c                 ó*   — t          j        | ¦  «        S rZ   )r¶   r¬  rÞ  s    rV   r½  z/TestParforNumPy.test_argmax.<locals>.test_impl2t  r¹  rX   r  )rW  rý  rü  ç       @rü  r  rà  rW  rý  r&  rü  z*attempt to get argmax of an empty sequencer"  c                  ó.   •— ‰                       d¦  «        S r  rã  r\   s   €rV   rä  z-TestParforNumPy.test_argmax.<locals>.<lambda>Ž  rå  rX   ©r¶   rˆ  r‰  rç  r  r  rŠ  ÚnanrÚ   r—   r   r�  r  r¿   rÃ   rê   r  r
  rà   ræ   r  s   `            rV   Útest_argmaxzTestParforNumPy.test_argmaxp  ó¢  ø€ ð	ð 	ð 	ð	 ð 	 ð 	 ð ˆÝŒHÐ)Ð)Ð)Ñ*Ô*ˆÝŒI×Ò˜b qÐÑ)Ô)×0Ò0µ´Ñ:Ô:ˆÝŒI�NŠN˜A˜q˜6Ñ"Ô"ˆÝŒH�b˜"�bœf b¨"Ð-Ñ.Ô.ˆØ�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!Ø�
Š
�:˜qÑ!Ô!Ð!ð ;ˆØ Ð,ð 	1ð 	1ˆDØ×*Ò*¨4µ%´+¸a¸a¸a´.Ð1BÑCÔCˆFØ×"Ò"¥:Ñ.Ô.ð A°!Ø×"Ò"¥2¤8¨Bµb´hÐ#?Ñ#?Ô#?Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aà�MŠM˜#�s 1¤;Ñ/Ô/Ñ0Ô0Ð0Ð0ð 9Ð8Ð8Ð8ˆØ×Ò˜J¨Ñ1Ô1Ð1Ø×#Ò# J°Ñ9Ô9Ð9Ø×Ò˜J¨Ñ1Ô1Ð1Ø×#Ò# J°Ñ9Ô9Ð9Ð9Ð9ó   Æ4GÇG!	Ç$G!	c                 óà  ‡ — d„ }d„ }d}t          j        g d¢¦  «        }t           j                             d|¬¦  «                             t           j        ¦  «        }t           j                             ||f¦  «        }t          j        ddt           j        dd	g¦  «        }‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         d
}||fD ]¸}	‰  	                    |	t          j        d d …         f¦  «        }
‰                      t          ¦  «        5 }|
                     t          j        g t           j        ¬¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   ‰                      |t!          |j        ¦  «        ¦  «         Œ¹ˆ fd„}‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         ‰                      ||¦  «         d S )Nc                 ó*   — |                       ¦   «         S rZ   r  rÞ  s    rV   r¸  z/TestParforNumPy.test_argmin.<locals>.test_impl1•  r$  rX   c                 ó*   — t          j        | ¦  «        S rZ   )r¶   r€  rÞ  s    rV   r½  z/TestParforNumPy.test_argmin.<locals>.test_impl2˜  r¹  rX   r  )rW  rý  r&  rý  rü  r  rà  rW  rý  rü  z*attempt to get argmin of an empty sequencer"  c                  ó.   •— ‰                       d¦  «        S r  rã  r\   s   €rV   rä  z-TestParforNumPy.test_argmin.<locals>.<lambda>²  rå  rX   r(  r  s   `            rV   Útest_argminzTestParforNumPy.test_argmin”  r+  r,  c                 óê   — d„ }t          j        d¦  «        }|                      ||¦  «         t          j        t          j        dd¦  «        f}|                      t          ||¦  «        d¦  «         d S )Nc                 ó0   — |                       d¦  «         | S ©Nç      @©Úfill©r£   s    rV   r  z4TestParforNumPy.test_ndarray_fill.<locals>.test_impl¹  ó   € Ø�FŠF�3‰KŒKˆKØˆHrX   r  râ   rš  ©r¶   ÚzerosrÚ   r   rœ  r’  rÆ   rä   ©rS   r  r£   rõ  s       rV   Útest_ndarray_fillz!TestParforNumPy.test_ndarray_fill¸  sr   € ð	ð 	ð 	õ ŒH�R‰LŒLˆØ�
Š
�9˜aÑ Ô Ð Ý”�Uœ]¨A¨sÑ3Ô3Ð5ˆØ×Ò� i°Ñ7Ô7¸Ñ;Ô;Ð;Ð;Ð;rX   c                 óê   — d„ }t          j        d¦  «        }|                      ||¦  «         t          j        t          j        dd¦  «        f}|                      t          ||¦  «        d¦  «         d S )Nc                 ó0   — |                       d¦  «         | S r4  r6  r8  s    rV   r  z6TestParforNumPy.test_ndarray_fill2d.<locals>.test_implÂ  r9  rX   ©ró   ró   ró   rš  râ   r:  r<  s       rV   Útest_ndarray_fill2dz#TestParforNumPy.test_ndarray_fill2dÁ  sr   € ð	ð 	ð 	õ ŒH�U‰OŒOˆØ�
Š
�9˜aÑ Ô Ð Ý”�Uœ]¨A¨sÑ3Ô3Ð5ˆØ×Ò� i°Ñ7Ô7¸Ñ;Ô;Ð;Ð;Ð;rX   c                 ój   — d„ }t          j        g d¢¦  «        }d}|                      |||¦  «         d S )Nc                 óÆ   — t          j        ||dft           j        ¬¦  «        }| d|…         }|j        } | dz  }|                     dd¦  «        }||z  }||d d …d d …df<   |S ©Nrâ   r"  r   rI   ©r¶   r;  r’  rá  r  ©r‡   rˆ   Úresult_matrixÚsub_aÚzÚresult_datas         rV   r  z<TestParforNumPy.test_reshape_with_neg_one.<locals>.test_implÌ  su   € ÝœH a¨¨A Yµb´jÐAÑAÔAˆMØ�a˜�c”FˆEØ”
ˆAØ�A‘ˆAØ—’˜b !Ñ$Ô$ˆAØ !™)ˆKØ#.ˆM˜!˜!˜!˜A˜A˜A˜a˜%Ñ Ø Ð rX   ©rW  r&  rü  rý  ç      @ç      @r5  g       @g      "@ç      $@g      &@rú  r  ©r¶   rˆ  rÚ   ©rS   r  r‡   rˆ   s       rV   Útest_reshape_with_neg_onez)TestParforNumPy.test_reshape_with_neg_oneÊ  óT   € ð	!ð 	!ð 	!õ ŒHð 4ð 4ð 4ñ 5ô 5ˆàˆà�
Š
�9˜a Ñ#Ô#Ð#Ð#Ð#rX   c                 ój   — d„ }t          j        g d¢¦  «        }d}|                      |||¦  «         d S )Nc                 óÆ   — t          j        ||dft           j        ¬¦  «        }| d|…         }|j        } | dz  }|                     dd¦  «        }||z  }||d d …d d …df<   |S )Nrâ   r"  r   iåúÿÿrE  rF  s         rV   r  z>TestParforNumPy.test_reshape_with_large_neg.<locals>.test_implÞ  su   € ÝœH a¨¨A Yµb´jÐAÑAÔAˆMØ�a˜�c”FˆEØ”
ˆAØ�A‘ˆAØ—’˜e QÑ'Ô'ˆAØ !™)ˆKØ#.ˆM˜!˜!˜!˜A˜A˜A˜a˜%Ñ Ø Ð rX   rK  r  rO  rP  s       rV   Útest_reshape_with_large_negz+TestParforNumPy.test_reshape_with_large_negÜ  rR  rX   c                 óB  — |                       t          j        ¦  «        5 }t          d¬¦  «        d„ ¦   «         }t	          j        g d¢¦  «        }d} |||¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         d S )NTr“   c                 óÆ   — t          j        ||dft           j        ¬¦  «        }| d|…         }|j        } | dz  }|                     dd¦  «        }||z  }||d d …d d …df<   |S rD  rE  )r‡   rˆ   ÚrmrH  rI  rJ  s         rV   r  zETestParforNumPy.test_reshape_with_too_many_neg_one.<locals>.test_implñ  ss   € å”X˜q ! Q˜i­r¬zÐ:Ñ:Ô:�Ø˜!˜A˜#œ�Ø”J�Ø˜‘E�Ø—M’M " bÑ)Ô)�Ø# a™i�Ø'��1�1�1�Q�Q�Q�q�5‘	Ø�	rX   rK  r  z7The reshape API may only include one negative argument.)	r  r   ÚUnsupportedRewriteErrorr   r¶   rˆ  rê   r  r
  )rS   Úraisedr  r‡   rˆ   rï   s         rV   Ú"test_reshape_with_too_many_neg_onez2TestParforNumPy.test_reshape_with_too_many_neg_oneî  só   € à×Ò�vÔ=Ñ>Ô>ð 	À&Ý˜4Ð Ñ Ô ðð ñ !Ô ðõ ”ð 8ð 8ð 8ñ 9ô 9ˆAàˆAØˆI�a˜‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð" IˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s    >A*Á*A.Á1A.c                 ó`   — d„ }|                       |t          j        d¦  «        d¬¦  «         d S )Nc                 óÒ   — t          j        | ¦  «        t          j        | ¦  «        z   t          j        | ¦  «        z   t          j        | ¦  «        z   t          j        | ¦  «        z   S rZ   )r¶   rx  Úprodr­  r®  rì  rö   s    rV   r  z0TestParforNumPy.test_0d_array.<locals>.test_impl  sD   € Ý”6˜!‘9”9�rœw q™zœzÑ)­B¬F°1©I¬IÑ5½¼¸q¹	¼	ÑAÅBÄFÈ1ÁIÄIÑMÐMrX   é   F©r±   )rÚ   r¶   rˆ  r  s     rV   Útest_0d_arrayzTestParforNumPy.test_0d_array  s:   € ð	Nð 	Nð 	Nà�
Š
�9�bœh q™kœk¸Eˆ
ÑBÔBÐBÐBÐBrX   c           	      óÖ   — d„ }t          j        d¦  «        dz  }|                      ||¦  «         |                      t	          |t
          j        d d d…         f¦  «        d¦  «         d S )Nc                 óP   — t          j        | j        dz  | j        dz  z   ¦  «        S rv  )r¶   rx  ÚrealÚimag)rI  s    rV   r  z6TestParforNumPy.test_real_imag_attr.<locals>.test_impl  s#   € Ý”6˜!œ& A™+¨¬°!©Ñ3Ñ4Ô4Ð4rX   r€   y      ð?      ð?râ   )r¶   rþ  rÚ   rÆ   rä   r   r%  )rS   r  rI  s      rV   Útest_real_imag_attrz#TestParforNumPy.test_real_imag_attr	  sp   € ð	5ð 	5ð 	5õ ŒI�a‰LŒL˜FÑ#ˆØ�
Š
�9˜aÑ Ô Ð Ø×Ò� iµ%Ô2BÀ3À3ÀQÀ3Ô2GÐ1IÑJÔJÈAÑNÔNÐNÐNÐNrX   N)rw   rN   rx   rT  r;   r¦  r¯  r´  rÉ  rÑ  rÙ  ré  rð  rö  rù  r
  r  r  r!  r*  r1  r=  rA  rQ  rU  r[  ra  rf  r|   rX   rV   r¡  r¡  y  s˜  € € € € € à1Ð1àð$ð $ñ „Zð$ð	Gð 	Gð 	GðFð Fð Fð.ð .ð .ð .ð .ð .ð 
/ð 
/ð 
/ð9ð 9ð 9ð 9ð 9ð 9ð$9ð 9ð 9ð&Fð Fð FðFð Fð Fð$Fð Fð Fð"#:ð #:ð #:ðJ#:ð #:ð #:ðJ":ð ":ð ":ðH":ð ":ð ":ðH<ð <ð <ð<ð <ð <ð$ð $ð $ð$$ð $ð $ð$2ð 2ð 2ð,Cð Cð Cð
Oð Oð Oð Oð OrX   r¡  c                   óX   — e Zd ZdZ ej        e d¦  «        ed„ ¦   «         ¦   «         ZdS )ÚTestParforsUnsupportedz$Tests for unsupported use of parforszOnly impacts 32 bit hardwarec                 ó’  — |                       t          j        ¦  «        5 }t          d¬¦  «        d„ ¦   «         }t	          j        ddd¦  «                             dd¦  «        }t	          j        ddd¦  «        } |||¦  «         d	d	d	¦  «         n# 1 swxY w Y   d
}|                      |t          |j	        ¦  «        ¦  «         d	S )zu
        This test is in place until issues with the 'parallel'
        target on 32 bit hardware are fixed.
        Tr“   c                 ó,   — t          j        | |¦  «        S rZ   rY  r¤  s     rV   ÚddotzHTestParforsUnsupported.test_unsupported_combination_raises.<locals>.ddot  s   € å”v˜a ‘|”|Ð#rX   r   râ   r?  ró   r  NzCThe 'parallel' target is not currently supported on 32 bit hardware)
r  r   ÚUnsupportedParforsErrorr   r¶   rõ   r  rê   r  r
  )rS   rZ  rk  rz  rí  rï   s         rV   Ú#test_unsupported_combination_raisesz:TestParforsUnsupported.test_unsupported_combination_raises  s  € ð ×Ò�vÔ=Ñ>Ô>ð 	À&Ý˜4Ð Ñ Ô ð$ð $ñ !Ô ð$õ ”˜A˜q "Ñ%Ô%×-Ò-¨a°Ñ4Ô4ˆAÝ”˜A˜q "Ñ%Ô%ˆAØˆD��A‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðˆà�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s    A&BÂBÂBN)	rw   rN   rx   rT  ÚunittestÚskipIfr:   r;   rm  r|   rX   rV   rh  rh    sP   € € € € € Ø.Ð.Ø€X„_˜�ZÐ!?Ñ@Ô@Øð2ð 2ñ „Zñ AÔ@ð2ð 2ð 2rX   rh  c                   ó0  — 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ed„ ¦   «         Zd„ Zd„ Zed„ ¦   «         Ze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,„ Z0d-„ Z1d.„ Z2d/„ Z3d0„ Z4d1„ Z5d2„ Z6d3„ Z7d4„ Z8d5„ Z9d6„ Z:d7„ Z;d8„ Z<d9„ Z=d:„ Z>d;„ Z?d<„ Z@d=„ ZAd>„ ZBd?„ ZCd@„ ZDdA„ ZEdB„ ZFdC„ ZGdD„ ZHdE„ ZIdF„ ZJdG„ ZKdH„ ZLdI„ ZMdJ„ ZNdK„ ZOdL„ ZPdM„ ZQeReSdN„ ¦   «         ¦   «         ZTdOS )PÚTestParforsz6 Tests cpython, reduction and various parfors featuresc                 ó@   ‡ — d„ }‰                       |ˆ fd„¦  «         d S )Nc                 ó   — | |z  |z   S rZ   r|   )r‡   r£   rh  s      rV   r  z,TestParfors.test_arraymap.<locals>.test_impl.  s   € Ø�q‘5˜1‘9ÐrX   c                  ó.   •— ‰                       d¦  «        S ©Nr  rã  r\   s   €rV   rä  z+TestParfors.test_arraymap.<locals>.<lambda>1  s   ø€ ¨t×/IÒ/IÈ!Ñ/LÔ/L€ rX   )rà   r  s   ` rV   Útest_arraymapzTestParfors.test_arraymap-  s:   ø€ ð	ð 	ð 	ð 	×Ò˜IÐ'LÐ'LÐ'LÐ'LÑMÔMÐMÐMÐMrX   c                 ó~   — d„ }|                       |¦  «         |                      t          |d¦  «        d¦  «         d S )Nc                  ó€   — t          j        d¦  «        } t          j        d¦  «        }t          j        | |z   ¦  «        S )Nrâ   ©r  é   )r¶   rˆ  r  rx  ©ro  rn  s     rV   r  z0TestParfors.test_0d_broadcast.<locals>.test_impl4  s0   € Ý”˜‘”ˆAÝ”˜Ñ!Ô!ˆAÝ”6˜!˜a™%‘=”=Ð rX   r|   râ   ©rÚ   rÆ   rä   r  s     rV   Útest_0d_broadcastzTestParfors.test_0d_broadcast3  óK   € ð	!ð 	!ð 	!ð 	�
Š
�9ÑÔÐØ×Ò� i°Ñ4Ô4°aÑ8Ô8Ð8Ð8Ð8rX   c                 ó~   — d„ }|                       |¦  «         |                      t          |d¦  «        d¦  «         d S )Nc                  ó€   — t          j        d¦  «        } t          j        d¦  «        }t          j        | |z   ¦  «        S ©Nry  )r¶   r  r;  rx  r{  s     rV   r  z-TestParfors.test_2d_parfor.<locals>.test_impl<  s2   € Ý”˜Ñ!Ô!ˆAÝ”˜Ñ"Ô"ˆAÝ”6˜!˜a™%‘=”=Ð rX   r|   râ   r|  r  s     rV   Útest_2d_parforzTestParfors.test_2d_parfor;  r~  rX   c                 óz   ‡ ‡— d„ Šˆˆ fd„}d„ }‰                       ||¦  «         ‰                      ||¦  «         d S )Nc               3   óf   K  — t          j        d¦  «        } t          j        d¦  «        }| |fV — d S r�  ©r¶   r  r;  r{  s     rV   Úcase1z)TestParfors.test_nd_parfor.<locals>.case1D  s5   è è € Ý”˜Ñ!Ô!ˆAÝ”˜Ñ"Ô"ˆAØ�a�&ˆLˆLˆLˆLˆLrX   c                  óZ   •— t           ‰ ¦   «         ‰                     d¦  «        ¦  «        S rv  )r
   r  )r†  rS   s   €€rV   rä  z,TestParfors.test_nd_parfor.<locals>.<lambda>I  s%   ø€ �5  ¡¤¨$×*DÒ*DÀQÑ*GÔ*GÑHÔH€ rX   c                 ó0   — t          j        | |z   ¦  «        S rZ   r„  r{  s     rV   r  z-TestParfors.test_nd_parfor.<locals>.test_implK  s   € Ý”6˜!˜a™%‘=”=Ð rX   )rà   ræ   )rS   rè  r  r†  s   `  @rV   Útest_nd_parforzTestParfors.test_nd_parforC  sj   øø€ ð	ð 	ð 	ð
 IÐHÐHÐHÐHˆð	!ð 	!ð 	!ð 	×Ò˜I xÑ0Ô0Ð0Ø×#Ò# I¨xÑ8Ô8Ð8Ð8Ð8rX   c                 óN   ‡— ddl mŠ ˆfd„}d}|                      ||¦  «         d S )Nr   )r  c                 ó*   •—  ‰| ¦  «        }|d         S rË  r|   )r÷   rz  r  s     €rV   r  z9TestParfors.test_np_func_direct_import.<locals>.test_implS  s   ø€ Ø��Q‘”ˆAØ�Q”4ˆKrX   éo   )rÝ  r  rÚ   )rS   r  r÷   r  s      @rV   Útest_np_func_direct_importz&TestParfors.test_np_func_direct_importQ  sO   ø€ ØÐÐÐÐÐð	ð 	ð 	ð 	ð 	ð ˆØ�
Š
�9˜aÑ Ô Ð Ð Ð rX   c                 ó<  — d„ }|                       |dd¦  «         |                      t          ¦  «        5 } t          d¬¦  «        |¦  «        } |dd¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         d S )Nc                 ó€   — t          j        | ¦  «        }t          j        |¦  «        }t          j        ||z   ¦  «        S rZ   r©  )r>  r÷   rz  rª  s       rV   r  z2TestParfors.test_size_assertion.<locals>.test_implZ  s.   € Ý”˜‘
”
ˆAÝ”˜‘
”
ˆAÝ”6˜!˜a™%‘=”=Ð rX   r  Tr“   é	   zSizes of A, B do not match)rÚ   r  r	  r   rê   r  r
  )rS   r  r  r«   rï   s        rV   Útest_size_assertionzTestParfors.test_size_assertionY  sä   € ð	!ð 	!ð 	!ð
 	�
Š
�9˜b "Ñ%Ô%Ð%Ø×Ò�~Ñ.Ô.ð 	°&Ø'•D $Ð'Ñ'Ô'¨	Ñ2Ô2ˆEØˆE�"�a‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð +ˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   µ&A'Á'A+Á.A+c                 ó¦   — d„ }d}t           j                             |¦  «        }t          j        |¦  «        }|                      ||||¦  «         d S )Nc                 ó¤   — t          j        d¦  «        D ]:}t          ||z  dz  |dz   |z  dz  ¦  «        D ]}d||<   | |         dk    rd||<   ŒŒ;|S )Nró   râ   r   ©r    r   rý   )r£   Úis_positiver‹  rû   ry  s        rV   r  z'TestParfors.test_cfg.<locals>.test_implh  ss   € Ý”\ !‘_”_ð +ð +�Ý  !¡ Q¡¨¨1©¨a©°©
Ñ4Ô4ð +ð +�AØ%&�K ‘NØ˜”t˜a’x�xØ)*˜ A™øð+ð
 ÐrX   rß  )r¶   r‰  Úrandr;  rÚ   )rS   r  r‹  r£   r•  s        rV   Útest_cfgzTestParfors.test_cfgf  sV   € ð	ð 	ð 	ð ˆÝŒI�NŠN˜1ÑÔˆÝ”h˜q‘k”kˆØ�
Š
�9˜a ¨aÑ0Ô0Ð0Ð0Ð0rX   c           	      ó"  — d„ }d}t           j                             |¦  «        }|                      ||¦  «         t           j                             d|¬¦  «                             t           j        ¦  «        }|                      ||¦  «         d„ }|                      ¦   «         5  |                      |¦  «         d d d ¦  «         n# 1 swxY w Y   d}t           j                             d|¬¦  «                             t           j        ¦  «        }d„ }|                      ||¦  «         d„ }|                      ||                     d	¦  «        ¦  «         d
„ }|                      ||                     d	¦  «        ¦  «         |  	                    t          |t          j        d d …d d …f         f¦  «        d¦  «         d„ }|                      ||¦  «         |  	                    t          |t          j        d d …         f¦  «        d¦  «         d S )Nc                 ó*   — d}t          d„ | |¦  «        S )Nr  c                 ó"   — t          | |¦  «        S rZ   r  r†   s     rV   rä  z<TestParfors.test_reduce.<locals>.test_impl.<locals>.<lambda>y  s   € ¥c¨!¨Q¡i¤i€ rX   r   )rz  Úinit_vals     rV   r  z*TestParfors.test_reduce.<locals>.test_implw  s   € ØˆHÝÐ/Ð/°°HÑ=Ô=Ð=rX   r  r  rà  c                  óR   — d„ } t          | t          j        g d¢¦  «        d¦  «        S )Nc                 ó   — | dz  S rv  r|   r8  s    rV   rä  z<TestParfors.test_reduce.<locals>.test_impl.<locals>.<lambda>ƒ  s
   € ˜!˜q™&€ rX   ©râ   ró   r  r  r€   ró   )r   r¶   rˆ  )Úgs    rV   r  z*TestParfors.test_reduce.<locals>.test_impl‚  s*   € Ø Ð ˆAÝ˜!�RœX o o oÑ6Ô6¸Ñ:Ô:Ð:rX   é    c                 ó>   — t          j        | | dk             ¦  «        S ru  r„  rÞ  s    rV   r  z*TestParfors.test_reduce.<locals>.test_impl‹  s   € Ý”6˜!˜A˜qšDœ'‘?”?Ð"rX   c                 óZ   — | d d …df         }t          j        | |dk    df         ¦  «        S )Nr   r  râ   r„  ©rz  rª  s     rV   r  z*TestParfors.test_reduce.<locals>.test_impl‘  s/   € Ø�!�!�!�A�#”ˆAÝ”6˜!˜A˜qšD ˜Fœ)Ñ$Ô$Ð$rX   )é   r  c                 ó^   — | d d …df         }t          j        | |dk    dd…f         ¦  «        S )Nr   r  râ   ró   r„  r£  s     rV   r  z*TestParfors.test_reduce.<locals>.test_impl˜  s3   € Ø�!�!�!�A�#”ˆAÝ”6˜!˜A˜qšD  1 ˜Hœ+Ñ&Ô&Ð&rX   ró   c                 ó4   — t          j        | ¦  «        }| |z
  S rZ   )r¶   Úamin)rz  Úmin_vals     rV   r  z*TestParfors.test_reduce.<locals>.test_implŸ  s   € Ý”g˜a‘j”jˆGØ�w‘;ÐrX   )r¶   r‰  rŠ  rÚ   rç  r  r  ÚassertTypingErrorr  rÆ   rä   r    r’  ©rS   r  r÷   rz  s       rV   Útest_reducezTestParfors.test_reducev  sL  € ð	>ð 	>ð 	>ð ˆÝŒI�NŠN˜1ÑÔˆØ�
Š
�9˜aÑ Ô Ð ÝŒI×Ò˜b qÐÑ)Ô)×0Ò0µ´Ñ:Ô:ˆØ�
Š
�9˜aÑ Ô Ð ð	;ð 	;ð 	;ð ×#Ò#Ñ%Ô%ð 	"ð 	"Ø�JŠJ�yÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð ˆÝŒI×Ò˜b qÐÑ)Ô)×0Ò0µ´Ñ:Ô:ˆð	#ð 	#ð 	#à�
Š
�9˜aÑ Ô Ð ð	%ð 	%ð 	%ð 	�
Š
�9˜aŸiši¨Ñ0Ô0Ñ1Ô1Ð1ð	'ð 	'ð 	'ð 	�
Š
�9˜aŸiši¨Ñ0Ô0Ñ1Ô1Ð1à×Ò� iµ%´-ÀÀÀÀ!À!À!ÀÔ2DÐ1FÑGÔGÈÑKÔKÐKð	ð 	ð 	ð 	�
Š
�9˜aÑ Ô Ð à×Ò� iµ%´-ÀÀÀÔ2BÐ1DÑEÔEÀqÑIÔIÐIÐIÐIs   Â&CÃCÃCc                 óð   — d„ }d}|                       t          ¦  «        5 }|                      |d¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      |t	          |j        ¦  «        ¦  «         d S )Nc                  óV   — d} t          d¦  «        D ]}t          j        | ¦  «        } Œ| S r¿  )r   ÚcmathrY  ©Úaccrû   s     rV   r  z9TestParfors.test_use_of_reduction_var1.<locals>.test_impl§  s0   € ØˆCÝ˜A‘Y”Yð &ð &�Ý”j ‘o”o��ØˆJrX   úCUse of reduction variable acc in an unsupported reduction function.r|   ©r  r¿   r—   rê   r  r
  ©rS   r  rï   r  r  s        rV   Útest_use_of_reduction_var1z&TestParfors.test_use_of_reduction_var1¦  s¸   € ð	ð 	ð 	ð UˆØ×Ò�zÑ*Ô*ð 	:¨aØ×*Ò*¨9°bÑ9Ô9ˆFð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:à�Š�c�3˜qœ{Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,ó    AÁAÁ
Ac                 óú   — d„ }d}|                       t          j        ¦  «        5 }|                      |d¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      |t          |j        ¦  «        ¦  «         d S )Nc                  ó8   — d} t          d¦  «        D ]}| dz  } Œ| S ©Nrß  ró   ©r   r¯  s     rV   r  z9TestParfors.test_unsupported_floordiv1.<locals>.test_impl´  s,   € ØˆCÝ˜A‘Y”Yð ð �Ø˜‘	��ØˆJrX   zÑParallel floordiv reductions are not supported. If all divisors are integers then a floordiv reduction can in some cases be parallelized as a multiply reduction followed by a floordiv of the resulting product.r|   )r  r   ÚNumbaValueErrorr—   rê   r  r
  r³  s        rV   Útest_unsupported_floordiv1z&TestParfors.test_unsupported_floordiv1³  s¼   € ð	ð 	ð 	ð(ˆð
 ×Ò�vÔ5Ñ6Ô6ð 	:¸!Ø×*Ò*¨9°bÑ9Ô9ˆFð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:à�Š�c�3˜qœ{Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,ó   ¥AÁAÁAc                 óð   — d„ }d}|                       t          ¦  «        5 }|                      |d¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      |t	          |j        ¦  «        ¦  «         d S )Nc                  ó>   — d} t          d¦  «        D ]
}| |dz   z  } Œ| S r¸  r¹  r¯  s     rV   r  z4TestParfors.test_unsupported_xor1.<locals>.test_implÅ  s0   € ØˆCÝ˜A‘Y”Yð ð �Ø�q˜1‘u‘��ØˆJrX   r±  r|   r²  r³  s        rV   Útest_unsupported_xor1z!TestParfors.test_unsupported_xor1Ä  s¸   € ð	ð 	ð 	ð UˆØ×Ò�zÑ*Ô*ð 	:¨aØ×*Ò*¨9°bÑ9Ô9ˆFð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:à�Š�c�3˜qœ{Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,rµ  c                 óš   — d„ }d}|                       ||¦  «         |                      t          |t          j        f¦  «        d¦  «         d S )Nc                 óR   — t          j        | ¦  «        }|                     ¦   «         S rZ   r©  r²  s     rV   r  z8TestParfors.test_parfor_array_access1.<locals>.test_implÓ  s   € Ý”˜‘
”
ˆAØ—5’5‘7”7ˆNrX   r  r   )rÚ   rÆ   rÉ  r   rŽ  ©rS   r  r÷   s      rV   Útest_parfor_array_access1z%TestParfors.test_parfor_array_access1Ð  sV   € ð	ð 	ð 	ð ˆØ�
Š
�9˜aÑ Ô Ð Ø×Ò� Yµ´°Ñ>Ô>ÀÑBÔBÐBÐBÐBrX   c                 óš   — d„ }d}|                       ||¦  «         |                      t          |t          j        f¦  «        d¦  «         d S )Nc                 ó  — t          j        | ¦  «        }d}d} t          j        t	          |¦  «        ¦  «        D ]}|||         z  }Œt          j        t	          |¦  «        ¦  «        D ]}|| k    r| ||         z  } Œ|| z   S rË  )r¶   r  r    r   rÈ   ©r÷   rz  r>  rû   s       rV   r  z8TestParfors.test_parfor_array_access2.<locals>.test_implÞ  s†   € Ý”˜‘
”
ˆAØˆAØˆAÝ”\¥# a¡&¤&Ñ)Ô)ð ð �Ø�Q�q”T‘	��å”\¥# a¡&¤&Ñ)Ô)ð ð �Ø˜’6�6Ø˜˜1œ‘I�Aøà�q‘5ˆLrX   r  r   ©rÚ   rÆ   râ  r   rŽ  rÂ  s      rV   Útest_parfor_array_access2z%TestParfors.test_parfor_array_access2Û  sX   € ð	ð 	ð 	ð ˆØ�
Š
�9˜aÑ Ô Ð Ø×ÒÕ4°YÅÄÀÑNÔNÐPQÑRÔRÐRÐRÐRrX   c                 óú   — d„ }d}|                       t          j        ¦  «        5 }|                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 ó¶   — t          j        | t           j        ¦  «        }d}t          j        t          |¦  «        ¦  «        D ]}|||         z  }|dk    r|}Œd S ©Nr   ró   )r¶   r  r�  r    r   rÈ   rÆ  s       rV   r  z8TestParfors.test_parfor_array_access3.<locals>.test_implð  s_   € Ý”˜�2œ8Ñ$Ô$ˆAØˆAÝ”\¥# a¡&¤&Ñ)Ô)ð ð �Ø�Q�q”T‘	�Ø�a’4�4Ø�Aøðð rX   r  z Overwrite of parallel loop index)r  r   rY  rÚ   rê   r  r
  )rS   r  r÷   r  s       rV   Útest_parfor_array_access3z%TestParfors.test_parfor_array_access3ï  s»   € ð	ð 	ð 	ð ˆØ×Ò�vÔ=Ñ>Ô>ð 	%À&Ø�JŠJ�y !Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%à�ŠÐ8½#¸fÔ>NÑ:OÔ:OÑPÔPÐPÐPÐPr¼  c           	      óØ  — d„ }d}d}t           j                             ||f¦  «        }t           j                             |¦  «        }|                      |||¦  «         t	          |t          j        t
          j        dd¦  «        t          j        t
          j        dd¦  «        f¦  «        \  }}|                      t          |j
        ¦  «        dk    od|j
        v ¦  «         |j
        d         }d}	d }
|j        D ]*}t          |t          j        j        j        ¦  «        rd	}	|}
Œ+|                      |	¦  «         d}|
j                             ¦   «         D ]}}|j        D ]s}t          |t&          j        ¦  «        rWt          |j        t&          j        ¦  «        r8|j        j        d
k    r(d	}|                      |
j        |j        j        v ¦  «         ŒtŒ~|                      |¦  «         d S )Nc                 ó,   — t          j        | |¦  «        S rZ   rY  )rz  rˆ   s     rV   r  z8TestParfors.test_parfor_array_access4.<locals>.test_impl  r¥  rX   r  r  ró   rš  râ   r   FTrë  )r¶   r‰  rŠ  rÚ   r½  r   rœ  r’  rH  rÈ   r³  rÁ  rµ   r    r©  rª  rÂ  rÐ  rØ  r   rÑ  rÞ  rß  rM  rä  rP  )rS   r  r÷   Údrz  rˆ   r·  r¹  rÅ  Úparfor_foundrª  ré  Úbuild_tuple_foundÚbls                 rV   Útest_parfor_array_access4z%TestParfors.test_parfor_array_access4ý  så  € ð	 ð 	 ð 	 ð ˆØˆÝŒI�NŠN˜A˜q˜6Ñ"Ô"ˆÝŒI�NŠN˜1ÑÔˆØ�
Š
�9˜a Ñ#Ô#Ð#å,Ø�œ¥E¤M°1°cÑ:Ô:Ýœ¥E¤M°1°cÑ:Ô:ð<ñ=ô =‰ˆ�ð 	�Š�˜GœNÑ+Ô+¨qÒ0ÐH°Q¸'¼.Ð5HÑIÔIÐIØ”˜qÔ!ˆØˆØˆØ”Jð 	ð 	ˆDÝ˜$¥¤Ô 4Ô ;Ñ<Ô<ð Ø#�Ø�øà�Š˜Ñ%Ô%Ð%Ø!ÐàÔ"×)Ò)Ñ+Ô+ð 	Jð 	JˆBØœð Jð J�Ý˜t¥R¤YÑ/Ô/ð JÝ& t¤zµ2´7Ñ;Ô;ðJà œJœM¨]Ò:Ð:Ø(,Ð%Ø—O’O FÔ$4¸¼
Ô8HÐ$HÑIÔIÐIøðJð 	�ŠÐ)Ñ*Ô*Ð*Ð*Ð*rX   c                 ó`   — d„ }t          j        d¦  «        }|                      ||¦  «         d S )Nc                 ó”   — t          j        t          | ¦  «        ¦  «        D ]}| j                             d¦  «        | |<   Œ | d         S ©Nr   r  )r    r   rÈ   r#  rÇ   )r‡   rû   s     rV   r  z5TestParfors.test_parfor_dtype_type.<locals>.test_impl&  sA   € Ý”\¥# a¡&¤&Ñ)Ô)ð 'ð '�Ø”w—|’| A‘”��!‘�Ø�Q”4ˆKrX   r  rƒ  )rS   r  r‡   s      rV   Útest_parfor_dtype_typez"TestParfors.test_parfor_dtype_type$  s:   € ð	ð 	ð 	õ
 ŒG�B‰KŒKˆØ�
Š
�9˜aÑ Ô Ð Ð Ð rX   c                 óš   — d„ }d}|                       ||¦  «         |                      t          |t          j        f¦  «        d¦  «         d S )Nc                 ó¦   — t          j        | df¦  «        }d}t          j        | ¦  «        D ]#}|||d d …f                              ¦   «         z  }Œ$|S )Nr  r   )r¶   r  r    r   rx  )r÷   ro  rh  rû   s       rV   r  z8TestParfors.test_parfor_array_access5.<locals>.test_impl0  sT   € Ý”˜˜A˜‘”ˆAØˆAÝ”\ !‘_”_ð "ð "�Ø�Q�q˜˜˜�s”V—Z’Z‘\”\Ñ!��ØˆHrX   r  r   rÇ  rÂ  s      rV   Útest_parfor_array_access5z%TestParfors.test_parfor_array_access5.  sX   € ð	ð 	ð 	ð ˆØ�
Š
�9˜aÑ Ô Ð Ø×ÒÕ4°YÅÄÀÑNÔNÐPQÑRÔRÐRÐRÐRrX   c                 ó`   — d„ }t          j        d¦  «        }|                      ||¦  «         d S )Nc                 óR   — t          d¦  «        D ]}d| d         z  | d<   Œ| d         S )Nr  ró   r   r¹  )Úoutrû   s     rV   r  z8TestParfors.test_parfor_hoist_setitem.<locals>.test_impl>  s3   € Ý˜B‘Z”Zð $ð $�Ø˜S œV™��A‘�Ø�q”6ˆMrX   râ   rƒ  )rS   r  rÝ  s      rV   Útest_parfor_hoist_setitemz%TestParfors.test_parfor_hoist_setitem;  s:   € ð	ð 	ð 	õ
 Œg�a‰jŒjˆØ�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   c                 ó*  — d„ }d}d}|                       |||¦  «         |                      t          |t          j        t          j        f¦  «        d¦  «         |                      t          |t          j        t          j        f¦  «        d¦  «         d S )Nc                 óØ   — t          j        |¦  «        }t          j        | |f¦  «        }t          j        | ¦  «        }t          d¦  «        D ]}| t          j        ||¦  «        z  }Œ|S ru  )r¶   r  rý   rm  )r‹  r†  rp  ro  rn  rû   rª  s          rV   r  z8TestParfors.test_parfor_generate_fuse.<locals>.test_implI  s_   € Ý”˜‘
”
ˆAÝ”˜˜A˜‘”ˆAÝ”˜‘
”
ˆAÝ˜1‘X”Xð (ð (�Ø�R�"œ&  A™,œ,Ñ&��àˆHrX   r  r  r  )rÚ   rÆ   rÚ  r   rŽ  rä   )rS   r  r÷   rÏ  s       rV   Útest_parfor_generate_fusez%TestParfors.test_parfor_generate_fuseF  s�   € ð	ð 	ð 	ð ˆØˆØ�
Š
�9˜a Ñ#Ô#Ð#Ø×ÒÕ)¨)µe´jÅ%Ä*Ð5MÑNÔNÐPQÑRÔRÐRØ×Ò� iµ%´*½e¼jÐ1IÑJÔJÈAÑNÔNÐNÐNÐNrX   c                 óÀ   — d„ }t          j        dt           j        ¦  «        }t          j        dt           j        ¦  «        }d|d<   |                      |||¦  «         d S )Nc                 ó,   — t          j        | |¦  «        S rZ   )r¶   Úbitwise_andr£  s     rV   r  z.TestParfors.test_ufunc_expr.<locals>.test_implZ  s   € Ý”> ! QÑ'Ô'Ð'rX   r  r   râ   )r¶   r  Úuint8rÚ   )rS   r  rz  rª  s       rV   Útest_ufunc_exprzTestParfors.test_ufunc_exprX  s^   € ð	(ð 	(ð 	(õ ŒG�A•r”xÑ Ô ˆÝŒG�A•r”xÑ Ô ˆØˆˆ!‰Ø�
Š
�9˜a Ñ#Ô#Ð#Ð#Ð#rX   c                 ój   — d„ }|                       t          |t          j        f¦  «        d¦  «         d S )Nc                 óZ   — t          | f¦  «        }t          | ¦  «        D ]
}|dz   ||<   Œ|S )Nr&  )Úunsafe_emptyrý   ©r÷   rz  rû   s      rV   r  z;TestParfors.test_find_callname_intrinsic.<locals>.test_implc  s:   € Ý˜a˜TÑ"Ô"ˆAÝ˜1‘X”Xð ð �Ø˜3‘w��!‘�ØˆHrX   râ   )rÆ   rÚ  r   rŽ  r  s     rV   Útest_find_callname_intrinsicz(TestParfors.test_find_callname_intrinsicb  s>   € ð	ð 	ð 	ð 	×ÒÕ)¨)µe´j°]ÑCÔCÀQÑGÔGÐGÐGÐGrX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 óf   — d}t          | ¦  «        D ]}|dz  }Œt          | ¦  «        D ]}|dz  }Œ|S rò   r¹  ©r÷   r°  rû   s      rV   r  z7TestParfors.test_reduction_var_reuse.<locals>.test_implo  sL   € ØˆCÝ˜A‘Y”Yð ð �Ø�q‘��å˜A‘Y”Yð ð �Ø�q‘��àˆJrX   r¤  r  r  s     rV   Útest_reduction_var_reusez$TestParfors.test_reduction_var_reusem  s-   € ð	ð 	ð 	ð 	�
Š
�9˜bÑ!Ô!Ð!Ð!Ð!rX   c                 ó¨   — d„ }|                       |t          j        d¦  «        t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 ó^   — d}t          | j        d         ¦  «        D ]}||         r|dz  }Œ|S ©Nrâ   r   ©r   r‡  )rz  Úcondr¼  rû   s       rV   r  z8TestParfors.test_non_identity_initial.<locals>.test_impl|  s?   € ØˆAÝ˜AœG AœJÑ'Ô'ð ð �Ø˜”7ð Ø˜‘F�AøØˆHrX   r  Úbool©rÚ   r¶   r  r  r  s     rV   Útest_non_identity_initialz%TestParfors.test_non_identity_initialz  sM   € ð	ð 	ð 	ð 	�
Š
�9�bœg b™kœk­2¬7°2©;¬;×+=Ò+=¸fÑ+EÔ+EÑFÔFÐFÐFÐFrX   c                 ó¨   — d„ }|                       |t          j        d¦  «        t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 ó~   — d}d}t          | j        d         ¦  «        D ]}||         r|dz  }|dz  }Œ|dz  }Œ||z   S )Nrâ   r  r   ró   ró  )rz  rô  r¼  rÀ  rû   s        rV   r  z9TestParfors.test_if_not_else_reduction.<locals>.test_impl†  s]   € ØˆAØˆAÝ˜AœG AœJÑ'Ô'ð ð �Ø˜”7ð Ø˜‘F�AØ˜‘F�A�Aà˜‘F�A�AØ�q‘5ˆLrX   r  rõ  rö  r  s     rV   Útest_if_not_else_reductionz&TestParfors.test_if_not_else_reduction„  sM   € ð		ð 		ð 		ð 	�
Š
�9�bœg b™kœk­2¬7°2©;¬;×+=Ò+=¸fÑ+EÔ+EÑFÔFÐFÐFÐFrX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ó(  — d}|d         |d         z  }t          j        |t           j        ¦  «        }t          j        |¦  «                             |¦  «        }t          j        | ¦  «        D ]}||z  }Œt          j        | ¦  «        D ]}||z  }Œ|S ©N©é   r   r   râ   ©r¶   r;  Úint_rþ  r  r    r   ©r÷   Úshprá  Úresult1Útmprû   s         rV   r  z?TestParfors.test_two_d_array_reduction_reuse.<locals>.test_impl“  s�   € ØˆCØ�q”6˜C œF‘?ˆDÝ”h˜s¥B¤GÑ,Ô,ˆGÝ”)˜D‘/”/×)Ò)¨#Ñ.Ô.ˆCå”\ !‘_”_ð ð �Ø˜3‘��å”\ !‘_”_ð ð �Ø˜3‘��àˆNrX   rß  r  r  s     rV   Ú test_two_d_array_reduction_reusez,TestParfors.test_two_d_array_reduction_reuse’  s-   € ð	ð 	ð 	ð 	�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ó¸   — t          j        dt           j        ¦  «        }t          j        | ¦  «        D ]%}|t          j        |gt           j        ¦  «        z  }Œ&|S r  )r¶   r;  r  r    r   rˆ  )r÷   Úresultrû   s      rV   r  z9TestParfors.test_one_d_array_reduction.<locals>.test_impl¤  sM   € Ý”X˜a¥¤Ñ)Ô)ˆFå”\ !‘_”_ð 1ð 1�Ø�"œ( A 3­¬Ñ0Ô0Ñ0��àˆMrX   rß  r  r  s     rV   Útest_one_d_array_reductionz&TestParfors.test_one_d_array_reduction£  s-   € ð	ð 	ð 	ð 	�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 óð   — d}|d         |d         z  }t          j        |t           j        ¦  «        }t          j        |¦  «                             |¦  «        }t          j        | ¦  «        D ]}||z  }Œ|S rý  r   r  s         rV   r  z9TestParfors.test_two_d_array_reduction.<locals>.test_impl¯  sm   € ØˆCØ�q”6˜C œF‘?ˆDÝ”h˜s¥B¤GÑ,Ô,ˆGÝ”)˜D‘/”/×)Ò)¨#Ñ.Ô.ˆCå”\ !‘_”_ð ð �Ø˜3‘��àˆNrX   rß  r  r  s     rV   Útest_two_d_array_reductionz&TestParfors.test_two_d_array_reduction®  s-   € ð		ð 		ð 		ð 	�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 óÒ   — d}t          j        |t           j        ¦  «        }t          j        g d¢¦  «                             |¦  «        }t          j        | ¦  «        D ]}||z  }Œ|S )Nr  )rW  r&  rü  rý  rL  rM  )r¶   r;  rÎ  rˆ  r  r    r   ©r÷   r  r  r  rû   s        rV   r  zJTestParfors.test_two_d_array_reduction_with_float_sizes.<locals>.test_impl¿  se   € ØˆCÝ”h˜s¥B¤JÑ/Ô/ˆGÝ”(Ð9Ð9Ð9Ñ:Ô:×BÒBÀ3ÑGÔGˆCå”\ !‘_”_ð ð �Ø˜3‘��àˆNrX   rß  r  r  s     rV   Ú+test_two_d_array_reduction_with_float_sizesz7TestParfors.test_two_d_array_reduction_with_float_sizes¼  s-   € ð	ð 	ð 	ð 	�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ó´   — d}dt          j        |t           j        ¦  «        z  }dt          j        |¦  «        z  }t	          j        | ¦  «        D ]}||z  }Œ|S )Nrþ  ró   )r¶   r  r  Ú	ones_liker    r   r  s        rV   r  z>TestParfors.test_two_d_array_reduction_prod.<locals>.test_implÌ  sZ   € ØˆCØ�"œ' #¥r¤wÑ/Ô/Ñ/ˆGØ•b”l 7Ñ+Ô+Ñ+ˆCå”\ !‘_”_ð ð �Ø˜3‘��àˆNrX   rß  r  r  s     rV   Útest_two_d_array_reduction_prodz+TestParfors.test_two_d_array_reduction_prodË  s-   € ð	ð 	ð 	ð 	�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 óº   — d}t          j        |t           j        ¦  «        }t          j        | ¦  «        D ]$}|t          j        |t           j        ¦  «        z  }Œ%|S )N)r  ró   r_  )r¶   r;  r  r    r   r  )r÷   r  r  rû   s       rV   r  z;TestParfors.test_three_d_array_reduction.<locals>.test_implÙ  sP   € ØˆCÝ”h˜s¥B¤GÑ,Ô,ˆGå”\ !‘_”_ð 1ð 1�Ø�2œ7 3­¬Ñ0Ô0Ñ0��àˆNrX   rß  r  r  s     rV   Útest_three_d_array_reductionz(TestParfors.test_three_d_array_reductionØ  s-   € ð	ð 	ð 	ð 	�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   c                 ód   — d„ }d}t          j        |¦  «        }|                      ||¦  «         d S )Nc                 ó0   — |                       ¦   «         dz   S r  )ÚargsortrÞ  s    rV   r  z>TestParfors.test_preparfor_canonicalize_kws.<locals>.test_implæ  s   € Ø—9’9‘;”; ‘?Ð"rX   r  ©r¶   rþ  rÚ   rª  s       rV   Útest_preparfor_canonicalize_kwsz+TestParfors.test_preparfor_canonicalize_kwsä  s?   € ð	#ð 	#ð 	#ð ˆÝŒI�a‰LŒLˆØ�
Š
�9˜aÑ Ô Ð Ð Ð rX   c                 ó  — d„ }t          j        dt          j        d¦  «        ¦  «        }|                      |t	          j        |¦  «        f¦  «        }|                      |                     |¦  «         ||¦  «        ¦  «         d S )Nc                 ó   — | j         S rZ   r"  rÞ  s    rV   r  z8TestParfors.test_preparfor_datetime64.<locals>.test_implï  s	   € Ø”7ˆNrX   râ   zdatetime64[ns])r¶   rÜ  r#  r—   r    r   rÆ   rÃ   )rS   r  rz  rª   s       rV   Útest_preparfor_datetime64z%TestParfors.test_preparfor_datetime64í  s�   € ð	ð 	ð 	õ ŒH�Q�œÐ!1Ñ2Ô2Ñ3Ô3ˆØ×&Ò& yµ5´<À±?´?Ð2DÑEÔEˆØ×Ò˜×+Ò+¨AÑ.Ô.°	°	¸!±´Ñ=Ô=Ð=Ð=Ð=rX   c                 ór   — d„ }|                       |t          j                             d¦  «        ¦  «         d S )Nc                 óœ   — | j         d         }d}t          |¦  «        D ],}h d£}|                     |¦  «         d}|D ]}||z  }Œ||z  }Œ-|S )Nr   >   râ   ró   r  )r‡  r   rÔ  )ro  r÷   r°  rû   ÚRr  r£   s          rV   r  zITestParfors.test_no_hoisting_with_member_function_call.<locals>.test_impl÷  sn   € Ø”˜”
ˆAØˆCÝ˜A‘Y”Yð ð �Ø�I�I�Ø—’�a‘”�Ø�Øð ð �AØ˜1‘H�C�CØ�s‘
��ØˆJrX   rÃ  )rÚ   r¶   r‰  rŠ  r  s     rV   Ú*test_no_hoisting_with_member_function_callz6TestParfors.test_no_hoisting_with_member_function_callö  s;   € ð
	ð 
	ð 
	ð 	�
Š
�9�bœiŸnšn¨SÑ1Ô1Ñ2Ô2Ð2Ð2Ð2rX   c                 ó6   — d„ }|                       |¦  «         dS )zñ issue3671: X != 0 becomes an arrayexpr with operator.ne.
            That is turned into a parfor by devectorizing.  Make sure
            the return type of the devectorized operator.ne
            on integer types works properly.
        c                  óN   — t          j        dt           j        ¬¦  «        } | dk    S )Nr  r"  r   )r¶   r;  r  ©ro  s    rV   r  z8TestParfors.test_array_compare_scalar.<locals>.test_impl  s!   € Ý”˜¥2¤7Ð+Ñ+Ô+ˆAØ˜’6ˆMrX   Nr  r  s     rV   Útest_array_compare_scalarz%TestParfors.test_array_compare_scalar  s+   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐÐÐrX   c                 óf   — d„ }t          j        d¦  «        }|                      ||dd¬¦  «         d S )Nc                 óz   — t          | ¦  «        }| d|…         }|r| d|dz  …         }|                     ¦   «         S rË  )rÈ   rx  )r£   Úhalfrá  Úparrs       rV   r  z?TestParfors.test_array_analysis_optional_def.<locals>.test_impl  sA   € Ý�q‘6”6ˆDØ�Q�t�V”9ˆDàð $Ø˜˜4 ™7˜”|�à—8’8‘:”:ÐrX   r?  TFr`  rƒ  ©rS   r  r£   s      rV   Ú test_array_analysis_optional_defz,TestParfors.test_array_analysis_optional_def  s@   € ð	ð 	ð 	õ ŒG�B‰KŒKˆØ�
Š
�9˜a ¸ˆ
Ñ>Ô>Ð>Ð>Ð>rX   c                 ój  — d„ }t          j        dt          ¬¦  «        }t          j        dt          ¬¦  «        }|                      |||¦  «         |                      t          |t          j        t          j        dd¦  «        t          j        t          j        dd¦  «        f¦  «        d¦  «         d S )Nc                 ó  — t          j        t          | ¦  «        t           j        ¬¦  «        }t          |¦  «        }t	          j        |¦  «        D ]}| |         ||<   Œt	          j        |¦  «        D ]}||         ||         z   ||<   Œ|S rÌ  )r¶   rÜ  rÈ   r’  r    r   )r‡   rˆ   Údatará  rû   s        rV   r  z7TestParfors.test_prange_side_effects.<locals>.test_impl  s†   € Ý”8�C ™FœF­"¬*Ð5Ñ5Ô5ˆDÝ�t‘9”9ˆDÝ”\ $Ñ'Ô'ð ð �Ø˜Aœ$��Q‘�Ý”\ $Ñ'Ô'ð )ð )�Ø˜qœ' A a¤D™.��Q‘�ØˆKrX   rß  r"  râ   rš  )	r¶   rþ  ÚfloatrÚ   rÆ   rä   r   rœ  r’  )rS   r  r£   rh  s       rV   Útest_prange_side_effectsz$TestParfors.test_prange_side_effects  s·   € ð	ð 	ð 	õ ŒI�g¥UÐ+Ñ+Ô+ˆÝŒI�g¥UÐ+Ñ+Ô+ˆà�
Š
�9˜a Ñ#Ô#Ð#Ø×Ò� iÝ%*¤[µ´ÀÀ3Ñ%GÔ%GÝ%*¤[µ´ÀÀ3Ñ%GÔ%Gð%IñJô JàKLñ	Nô 	Nð 	Nð 	Nð 	NrX   c                 ó`   — d„ }t          j        d¦  «        }|                      ||¦  «         d S )Nc                 óš   — d}d}t          j        t          | ¦  «        ¦  «        D ]$}| |xx         |d         |d         z   |z   z  cc<   Œ%| S )Nrû  r_  r   râ   )r    r   rÈ   ©r‡   Úatuprˆ   rû   s       rV   r  z*TestParfors.test_tuple1.<locals>.test_impl0  sZ   € ØˆDØˆAÝ”\¥# a¡&¤&Ñ)Ô)ð .ð .�Ø�!��”˜˜Qœ $ q¤'Ñ)¨AÑ-Ñ-��‘�ØˆHrX   r  r  r-  s      rV   Útest_tuple1zTestParfors.test_tuple1/  ó:   € ð	ð 	ð 	õ ŒI�b‰MŒMˆØ�
Š
�9˜aÑ Ô Ð Ð Ð rX   c                 ó`   — d„ }t          j        d¦  «        }|                      ||¦  «         d S )Nc                 ó’   — | j         }d}t          j        t          | ¦  «        ¦  «        D ]}| |xx         |d         |z   z  cc<   Œ| S )Nr_  r   )r‡  r    r   rÈ   r6  s       rV   r  z*TestParfors.test_tuple2.<locals>.test_impl;  sR   € Ø”7ˆDØˆAÝ”\¥# a¡&¤&Ñ)Ô)ð $ð $�Ø�!��”˜˜Qœ !™Ñ#��‘�ØˆHrX   r  r  r-  s      rV   Útest_tuple2zTestParfors.test_tuple2:  r9  rX   c                 ó`   — d„ }t          j        d¦  «        }|                      ||¦  «         d S )Nc                 óÎ   — t          j        d¦  «        df}d}t          j        t	          | ¦  «        ¦  «        D ]*}| |xx         |d         d         |d         z   |z   z  cc<   Œ+| S )Nr  r  r_  r   r€   râ   )r¶   rþ  r    r   rÈ   r6  s       rV   r  z*TestParfors.test_tuple3.<locals>.test_implF  sk   € Ý”I˜b‘M”M 1Ð%ˆDØˆAÝ”\¥# a¡&¤&Ñ)Ô)ð 1ð 1�Ø�!��”˜˜Qœ œ
 T¨!¤WÑ,¨qÑ0Ñ0��‘�ØˆHrX   r  r  r-  s      rV   Útest_tuple3zTestParfors.test_tuple3E  r9  rX   c                 ó`   — d„ }t          j        d¦  «        }|                      ||¦  «         d S )Nc                 ó´   — t          dd¬¦  «        }d}t          j        t          | ¦  «        ¦  «        D ]"}| |xx         |j        |j        z   |z   z  cc<   Œ#| S ©Nr  r  r‚   r_  )r�   r    r   rÈ   rƒ   r„   )r‡   Úantuprˆ   rû   s       rV   r  z/TestParfors.test_namedtuple1.<locals>.test_implQ  sc   € Ý"¨°!Ð4Ñ4Ô4ˆEØˆAÝ”\¥# a¡&¤&Ñ)Ô)ð 6ð 6�Ø�!��”˜œ e¤kÑ1°AÑ5Ñ5��‘�ØˆHrX   r  r  r-  s      rV   Útest_namedtuple1zTestParfors.test_namedtuple1P  r9  rX   c                 ó†   ‡— t          dd¦  «        Šˆfd„}t          j        d¦  «        }|                      ||¦  «         d S )NÚTestNamedTuple2r‚   c                 ó®   •—  ‰dd¬¦  «        }d}t          j        t          | ¦  «        ¦  «        D ]"}| |xx         |j        |j        z   |z   z  cc<   Œ#| S rB  )r    r   rÈ   rƒ   r„   )r‡   rC  rˆ   rû   rF  s       €rV   r  z/TestParfors.test_namedtuple2.<locals>.test_impl]  sf   ø€ Ø#�O¨!°1Ð5Ñ5Ô5ˆEØˆAÝ”\¥# a¡&¤&Ñ)Ô)ð 6ð 6�Ø�!��”˜œ e¤kÑ1°AÑ5Ñ5��‘�ØˆHrX   r  )r   r¶   rþ  rÚ   )rS   r  r£   rF  s      @rV   Útest_namedtuple2zTestParfors.test_namedtuple2[  sV   ø€ Ý$Ð%6Ð8JÑKÔKˆð	ð 	ð 	ð 	ð 	õ ŒI�b‰MŒMˆØ�
Š
�9˜aÑ Ô Ð Ð Ð rX   c                 ó¢   — t          ddg¦  «        }d„ }d„ } |t          j        d¦  «        ¬¦  «        }|                      |||g¬¦  «         d S )NÚTestNamedTuple3rh  c                 ó   — d| j         d d …<   d S )Nr€   ©rh  r|  s    rV   r  z/TestParfors.test_namedtuple3.<locals>.test_impll  s   € ØˆAŒC���‰FˆFˆFrX   c                 óZ   — t           j                             | j        |j        ¦  «         d S rZ   )r¶   rÄ   rÅ   rh  r†   s     rV   r€  z.TestParfors.test_namedtuple3.<locals>.comparero  s$   € ÝŒJ×*Ò*¨1¬3°´Ñ4Ô4Ð4Ð4Ð4rX   r  rL  r‚  )r   r¶   r;  rÚ   )rS   rJ  r  r€  r£   s        rV   Útest_namedtuple3zTestParfors.test_namedtuple3g  sp   € õ %Ð%7¸¸Ñ>Ô>ˆð	ð 	ð 	ð	5ð 	5ð 	5ð ˆO�bœh r™lœlÐ+Ñ+Ô+ˆØ�
Š
�9˜a°X°Jˆ
Ñ?Ô?Ð?Ð?Ð?rX   c                 óZ  — d„ }t          j        d¦  «        dz   }t          j        d¦  «        dz   }|                      |||¦  «         |                      t	          |t          j        t
          j        dd¦  «        t          j        t
          j        dd¦  «        f¦  «        d¦  «         d S )Nc                 ó   — || z  }|S rZ   r|   r†   s     rV   r  z1TestParfors.test_inplace_binop.<locals>.test_implv  s   € Ø�‰FˆAØˆHrX   r  rß  râ   rš  )r¶   rþ  rÚ   rÆ   rä   r   rœ  r’  ©rS   r  ro  rn  s       rV   Útest_inplace_binopzTestParfors.test_inplace_binopu  s³   € ð	ð 	ð 	õ ŒI�b‰MŒM˜BÑˆÝŒI�b‰MŒM˜CÑˆØ�
Š
�9˜a Ñ#Ô#Ð#Ø×Ò� iÝ%*¤[µ´ÀÀ3Ñ%GÔ%GÝ%*¤[µ´ÀÀ3Ñ%GÔ%Gð%IñJô JàKLñ	Nô 	Nð 	Nð 	Nð 	NrX   c                 ód   — d„ }t          j        ddg¦  «        }|                      ||¦  «         d S )Nc                 óÈ   — t          | ¦  «        }||f}t          j        d|z   dz   t          j        ¬¦  «        }|dd d …f         }t	          | ¦  «        D ]\  }}||||f<   Œ|S )Nr  r"  r   ©rÈ   r¶   r;  Úuint64rÀ  ©r‡   r÷   Úarray_shapeÚindicesÚk_listrû   rŸ  s          rV   r  z0TestParfors.test_tuple_concat.<locals>.test_implƒ  st   € Ý�A‘”ˆAØ˜Q˜$ˆKÝ”h  {Ñ 2°TÑ 9Å"Ä)ÐLÑLÔLˆGØ˜Q   ˜T”]ˆFå! !™œð !ð !‘��1Ø ��q˜!�t‘�ØˆMrX   râ   rO  r-  s      rV   Útest_tuple_concatzTestParfors.test_tuple_concat�  s@   € ð	ð 	ð 	õ ŒH�a˜�VÑÔˆØ�
Š
�9˜aÑ Ô Ð Ð Ð rX   c                 ód   — d„ }t          j        ddg¦  «        }|                      ||¦  «         d S )Nc                 óØ   — t          | ¦  «        }||f}t          j        d|z   dz   d d…         t          j        ¬¦  «        }|dd d …f         }t	          | ¦  «        D ]\  }}||||f<   Œ|S )Nr  rI   r"  r   rU  rW  s          rV   r  zCTestParfors.test_tuple_concat_with_reverse_slice.<locals>.test_impl’  s„   € Ý�A‘”ˆAØ˜Q˜$ˆKÝ”h  {Ñ 2°TÑ 9¸3¸B¸3Ô?Ý%'¤Yð0ñ 0ô 0ˆGà˜Q   ˜T”]ˆFå! !™œð !ð !‘��1Ø ��q˜!�t‘�ØˆMrX   râ   rO  r-  s      rV   Ú$test_tuple_concat_with_reverse_slicez0TestParfors.test_tuple_concat_with_reverse_slice�  s@   € ð		ð 		ð 		õ ŒH�a˜�VÑÔˆØ�
Š
�9˜aÑ Ô Ð Ð Ð rX   c                 ó`   — d„ }t          j        d¦  «        }|                      ||¦  «         d S )Nc                 óF   — | f| | fz   }|d                               ¦   «         S rË  ©rx  )r‡   ÚSs     rV   r  z6TestParfors.test_array_tuple_concat.<locals>.test_impl¢  s#   € Ø�˜˜1�v‘ˆAØ�Q”4—8’8‘:”:ÐrX   ©r  r  rƒ  r-  s      rV   Útest_array_tuple_concatz#TestParfors.test_array_tuple_concat   s:   € ð	ð 	ð 	õ ŒG�E‰NŒNˆØ�
Š
�9˜aÑ Ô Ð Ð Ð rX   c                 ó`   — d„ }t          j        d¦  «        }|                      ||¦  «         d S )Nc                 ó   — | dz  S )NrL  r|   r8  s    rV   r  z3TestParfors.test_high_dimension1.<locals>.test_impl«  s   € Ø�s‘7ˆNrX   )ró   ró   ró   ró   ró   é   rƒ  r-  s      rV   Útest_high_dimension1z TestParfors.test_high_dimension1©  s;   € ð	ð 	ð 	åŒGÐ'Ñ(Ô(ˆØ�
Š
�9˜aÑ Ô Ð Ð Ð rX   c                 ób   — d„ }d}|                       |t          j        |¦  «        |¦  «         d S )Nc                 ó>   — t          j        |¦  «        D ]}d| |<   Œ| S r  ©r    Úpndindex©r£   Úszrû   s      rV   r  z-TestParfors.test_tuple_arg.<locals>.test_impl±  ó+   € Ý”^ BÑ'Ô'ð ð �Ø��!‘�ØˆHrX   ©r  r€   )rÚ   r¶   rÜ  ©rS   r  rn  s      rV   Útest_tuple_argzTestParfors.test_tuple_arg°  s<   € ð	ð 	ð 	ð ˆØ�
Š
�9�bœh r™lœl¨BÑ/Ô/Ð/Ð/Ð/rX   c                 ób   — d„ }d}|                       |t          j        |¦  «        d¦  «         d S )Nc                 ó>   — t          j        |¦  «        D ]}d| |<   Œ| S r  rk  rm  s      rV   r  z=TestParfors.test_tuple_arg_not_whole_array.<locals>.test_impl¹  ro  rX   rp  ©r  r  ©rÚ   r¶   r;  rq  s      rV   Útest_tuple_arg_not_whole_arrayz*TestParfors.test_tuple_arg_not_whole_array¸  s<   € ð	ð 	ð 	ð ˆØ�
Š
�9�bœh r™lœl¨GÑ4Ô4Ð4Ð4Ð4rX   c                 ó`   — d„ }d}|                       |t          j        |¦  «        ¦  «         d S )Nc                 óB   — d}t          j        |¦  «        D ]}d| |<   Œ| S )Nrp  râ   rk  rm  s      rV   r  z6TestParfors.test_tuple_for_pndindex.<locals>.test_implÁ  s0   € ØˆBÝ”^ BÑ'Ô'ð ð �Ø��!‘�ØˆHrX   rp  rv  rq  s      rV   Útest_tuple_for_pndindexz#TestParfors.test_tuple_for_pndindexÀ  s:   € ð	ð 	ð 	ð
 ˆØ�
Š
�9�bœh r™lœlÑ+Ô+Ð+Ð+Ð+rX   c                 ób   — d„ }d}|                       |t          j        |¦  «        d¦  «         d S )Nc                 óF   — |df}t          j        |¦  «        D ]}d| |<   Œ| S r‘  rk  )r£   Úfirstrn  rû   s       rV   r  z5TestParfors.test_tuple_arg_literal.<locals>.test_implÊ  s4   € Ø˜�ˆBÝ”^ BÑ'Ô'ð ð �Ø��!‘�ØˆHrX   rp  r  rv  rq  s      rV   Útest_tuple_arg_literalz"TestParfors.test_tuple_arg_literalÉ  s<   € ð	ð 	ð 	ð
 ˆØ�
Š
�9�bœh r™lœl¨BÑ/Ô/Ð/Ð/Ð/rX   c                 ó¦   ‡ ‡‡‡‡— d„ Šd„ Šd„ Š ‰ ‰¦   «         ‰¦  «        Šˆˆˆˆ ˆfd„}t           t          d¬¦  «        fD ]} ||¦  «         Œd S )Nc                 ó>   — t          j        |¦  «        D ]}d| |<   Œ| S r  rk  rm  s      rV   r  z?TestParfors.test_tuple_of_literal_nonliteral.<locals>.test_implÖ  ro  rX   c                 ó   —  || d¦  «        S )Nru  r|   )r£   r+  s     rV   rG  z:TestParfors.test_tuple_of_literal_nonliteral.<locals>.callÛ  s   € Ø�2�a˜‘>”>Ð!rX   c                  ó*   — t          j        d¦  «        S )Nr5  ©r¶   r;  r|   rX   rV   rä  z>TestParfors.test_tuple_of_literal_nonliteral.<locals>.<lambda>Þ  s   € �BœH XÑ.Ô.€ rX   c                 ó�   •—  | ‰¦  «        }t          ‰¦  «        } | ‰¦   «         |¦  «        }‰                     ‰|¦  «         d S rZ   )r   ÚassertPreciseEqual)	ÚdecÚf1Úf2ÚgotrG  ÚexpectedÚ	get_inputrS   r  s	       €€€€€rV   rÚ   z;TestParfors.test_tuple_of_literal_nonliteral.<locals>.checká  sN   ø€ Ø��Y‘”ˆBÝ�d‘”ˆBØ�"�Y�Y‘[”[ "Ñ%Ô%ˆCØ×#Ò# H¨cÑ2Ô2Ð2Ð2Ð2rX   Tr“   ©r   )rS   rÚ   rÏ  rG  rŠ  r‹  r  s   `  @@@@rV   Ú test_tuple_of_literal_nonliteralz,TestParfors.test_tuple_of_literal_nonliteralÒ  s­   øøøøø€ ð	ð 	ð 	ð
	"ð 	"ð 	"ð /Ð.ˆ	Ø�4˜	˜	™œ YÑ/Ô/ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3õ � dÐ+Ñ+Ô+Ð,ð 	ð 	ˆAØˆE�!‰HŒHˆHˆHð	ð 	rX   c                 ób   — d„ }d}|                       |t          j        |¦  «        |¦  «         d S )Nc                 ó>   — t          j        |¦  «        D ]}d| |<   Œ| S r  rk  rm  s      rV   r  z0TestParfors.test_tuple_arg_1d.<locals>.test_implë  ro  rX   ©r  rv  rq  s      rV   Útest_tuple_arg_1dzTestParfors.test_tuple_arg_1dê  s<   € ð	ð 	ð 	ð ˆØ�
Š
�9�bœh r™lœl¨BÑ/Ô/Ð/Ð/Ð/rX   c                 ó`   — d„ }d}|                       |t          j        |¦  «        ¦  «         d S )Nc                 óB   — d}t          j        |¦  «        D ]}d| |<   Œ| S ©Nr�  râ   rk  rm  s      rV   r  z8TestParfors.test_tuple_arg_1d_literal.<locals>.test_impló  s0   € ØˆBÝ”^ BÑ'Ô'ð ð �Ø��!‘�ØˆHrX   r�  rv  rq  s      rV   Útest_tuple_arg_1d_literalz%TestParfors.test_tuple_arg_1d_literalò  s:   € ð	ð 	ð 	ð
 ˆØ�
Š
�9�bœh r™lœlÑ+Ô+Ð+Ð+Ð+rX   c                 ó^   — d„ }|                       |t          j        d¦  «        d¦  «         d S )Nc                 ó>   — t          j        |¦  «        D ]}d| |<   Œ| S r  rk  rm  s      rV   r  z4TestParfors.test_int_arg_pndindex.<locals>.test_implü  ro  rX   r5  r  rv  r  s     rV   Útest_int_arg_pndindexz!TestParfors.test_int_arg_pndindexû  s9   € ð	ð 	ð 	ð 	�
Š
�9�bœh xÑ0Ô0°!Ñ4Ô4Ð4Ð4Ð4rX   c                 ór   — d„ }|                       |t          j                             d¦  «        ¦  «         d S )Nc                 ó”   — t          j        | j        | j        ¬¦  «        }t	          j        | j        ¦  «        D ]}| |         ||<   Œ|S rÌ  )r¶   r;  r‡  r#  r    rl  )rz  r	  Úidxs      rV   r  z;TestParfors.test_partial_sum_1d_parallel.<locals>.test_impl  sI   € Ý”X˜aœg¨Q¬WÐ5Ñ5Ô5ˆFÝ”~ a¤gÑ.Ô.ð %ð %�Ø œf��s‘�ØˆMrX   )ró   )rÚ   r¶   r‰  r  s     rV   Útest_partial_sum_1d_parallelz(TestParfors.test_partial_sum_1d_parallel  s=   € ð	ð 	ð 	ð
 	�
Š
�9�bœi×.Ò.¨tÑ4Ô4Ñ5Ô5Ð5Ð5Ð5rX   c                 ó"  ‡— t           d„ ¦   «         Šˆfd„}d}t          j        ||f¦  «        }t          j        d d …d d d…f         t
          j        f}|                      t          ||¦  «        d¦  «         |  	                    |||¦  «         d S )Nc                 óv   — t          ||z   dz   dz  dz   |dz
  d¦  «        D ]}| |dz   |f         dz   | ||f<   Œd S ©Nrâ   ró   r|  )Úurû   Úevenrá  ry  s        rV   Úissue7854_procz=TestParfors.test_prange_unknown_call1.<locals>.issue7854_proc  s\   € å˜D 1™H q™L¨AÑ-°Ñ1°4¸!±8¸QÑ?Ô?ð *ð *�Ø˜A ™E 1˜Hœ+¨™/��!�Q�$‘�ð*ð *rX   c                 ó¬   •— t          j        d|dz
  ¦  «        D ]} ‰| |d|¦  «         Œt          j        d|dz
  ¦  «        D ]} ‰| |d|¦  «         Œ| S rò  ©r    r   )r   rá  rû   r¢  s      €rV   r  z8TestParfors.test_prange_unknown_call1.<locals>.test_impl  sx   ø€ Ý”\ ! T¨A¡XÑ.Ô.ð .ð .�Ø�˜q ! Q¨Ñ-Ô-Ð-Ð-Ý”\ ! T¨A¡XÑ.Ô.ð .ð .�Ø�˜q ! Q¨Ñ-Ô-Ð-Ð-ØˆHrX   r  râ   ró   )
rA   r¶   r;  r    r’  r   r�  rÆ   rä   rÚ   )rS   r  rá  r   Úcptypesr¢  s        @rV   Útest_prange_unknown_call1z%TestParfors.test_prange_unknown_call1
  s­   ø€ Ý	ð	*ð 	*ñ 
Ô	ð	*ð	ð 	ð 	ð 	ð 	ð ˆÝŒH�d˜D�\Ñ"Ô"ˆÝ”=    C C a C Ô(­%¬+Ð6ˆØ×Ò� i°Ñ9Ô9¸1Ñ=Ô=Ð=Ø�
Š
�9˜a Ñ&Ô&Ð&Ð&Ð&rX   c                 óü   — d„ }d}t          j        ||f¦  «        }t          j        d d …d d d…f         t          j        f}|                      t          ||¦  «        d¦  «         |                      |||¦  «         d S )Nc                 ó@  — t          j        d|dz
  ¦  «        D ]7}t          |dz   dz  dz   |dz
  d¦  «        D ]}| |dz   |f         dz   | ||f<   ŒŒ8t          j        d|dz
  ¦  «        D ]4}t          |dz  dz   |dz
  d¦  «        D ]}| |dz   |f         dz   | ||f<   ŒŒ5| S rŸ  r”  )r   rá  rû   ry  s       rV   r  z6TestParfors.test_prange_index_calc1.<locals>.test_impl"  sß   € Ý”\ ! T¨A¡XÑ.Ô.ð .ð .�Ý  A¡¨™{¨Q™°°q±¸!Ñ<Ô<ð .ð .�AØ  A¡ q œk¨A™o�A�a˜�d‘G�Gð.å”\ ! T¨A¡XÑ.Ô.ð .ð .�Ý˜q 1™u q™y¨$°©(°AÑ6Ô6ð .ð .�AØ  A¡ q œk¨A™o�A�a˜�d‘G�Gð.àˆHrX   r  râ   ró   ©	r¶   r;  r    r’  r   r�  rÆ   rä   rÚ   )rS   r  rá  r   r¥  s        rV   Útest_prange_index_calc1z#TestParfors.test_prange_index_calc1  sˆ   € ð	ð 	ð 	ð ˆÝŒH�d˜D�\Ñ"Ô"ˆÝ”=    C C a C Ô(­%¬+Ð6ˆØ×Ò� i°Ñ9Ô9¸1Ñ=Ô=Ð=Ø�
Š
�9˜a Ñ&Ô&Ð&Ð&Ð&rX   c                 óZ  — d„ }d}t          j        ||f¦  «        }t          j        ||f¦  «        }t          j        d d …d d d…f         t          j        d d …d d d…f         t          j        f}|                      t          ||¦  «        d¦  «         |                      ||||¦  «         d S )Nc                 óú   — t          j        |¦  «        D ]&}t          |¦  «        D ]}|||f         dz   | ||f<   ŒŒ't          j        |¦  «        D ]}t          |¦  «        D ]	}d|||f<   Œ
Œ| d         |d         z   S )Nrâ   r  r0  r”  )r‡   rˆ   rá  rû   ry  s        rV   r  z9TestParfors.test_prange_reverse_order1.<locals>.test_impl4  s¥   € Ý”\ $Ñ'Ô'ð *ð *�Ý˜t™œð *ð *�AØ  1 œg¨™k�A�a˜�d‘G�Gð*å”\ $Ñ'Ô'ð  ð  �Ý˜t™œð  ð  �AØ�A�a˜�d‘G�Gð à�T”7˜Q˜tœWÑ$Ð$rX   r  râ   ró   r©  ©rS   r  rá  r‡   rˆ   r¥  s         rV   Útest_prange_reverse_order1z&TestParfors.test_prange_reverse_order11  s´   € ð	%ð 	%ð 	%ð ˆÝŒH�d˜D�\Ñ"Ô"ˆÝŒH�d˜D�\Ñ"Ô"ˆÝ”=    C C a C Ô(­%¬-¸¸¸¸3¸3¸Q¸3¸Ô*?ÅÄÐMˆØ×Ò� i°Ñ9Ô9¸1Ñ=Ô=Ð=Ø�
Š
�9˜a  DÑ)Ô)Ð)Ð)Ð)rX   c                 óî   — d„ }d}t          j        |¦  «        }t          j        d d …         t          j        f}|                      t          ||¦  «        d¦  «         |                      |||¦  «         d S )Nc                 ó†   — d}t          j        |¦  «        D ]}|| |<   Œt          j        |¦  «        D ]}|| d         z  }Œ|S )Nr   r€   r¤  )r‡   rá  rˆ   rû   s       rV   r  z@TestParfors.test_prange_parfor_index_then_not.<locals>.test_implG  sX   € ØˆAÝ”\ $Ñ'Ô'ð ð �Ø��!‘�Ý”\ $Ñ'Ô'ð ð �Ø�Q�q”T‘	��ØˆHrX   r  ró   r©  )rS   r  rá  r‡   r¥  s        rV   Ú!test_prange_parfor_index_then_notz-TestParfors.test_prange_parfor_index_then_notD  sx   € ð	ð 	ð 	ð ˆÝŒH�T‰NŒNˆÝ”=   Ô#¥U¤[Ð1ˆØ×Ò� i°Ñ9Ô9¸1Ñ=Ô=Ð=Ø�
Š
�9˜a Ñ&Ô&Ð&Ð&Ð&rX   c                 ó`  — d„ }d}t          j        |¦  «        }t          |¦  «        }t          j        d d …         t
          j                             t
          j        |¦  «        t
          j        f}|  	                    t          ||¦  «        d¦  «         |                      ||||¦  «         d S )Nc                 óª   — d}t          j        |¦  «        D ]}|||         z   | |<   Œt          j        |¦  «        D ]}|| |         |d         z   z  }Œ|S r¿  r¤  )r‡   Útuprá  r°  rû   s        rV   r  zJTestParfors.test_prange_parfor_index_const_tuple_fusion.<locals>.test_implX  si   € ØˆCÝ”\ $Ñ'Ô'ð "ð "�Ø˜3˜qœ6‘z��!‘�Ý”\ $Ñ'Ô'ð %ð %�Ø�q˜”t˜c !œf‘}Ñ$��ØˆJrX   r  râ   )r¶   r;  r¦   r    r’  r   Ú
containersÚUniTuplerŽ  rÆ   rä   rÚ   r­  s         rV   Ú+test_prange_parfor_index_const_tuple_fusionz7TestParfors.test_prange_parfor_index_const_tuple_fusionU  s¢   € ð	ð 	ð 	ð ˆÝŒH�T‰NŒNˆÝ�!‰HŒHˆÝ”=   Ô#ÝÔ#×,Ò,­U¬]¸DÑAÔAÝ”:ðˆð 	×Ò� i°Ñ9Ô9¸1Ñ=Ô=Ð=Ø�
Š
�9˜a  DÑ)Ô)Ð)Ð)Ð)rX   c                 ó>  — d„ }d}t          j        |¦  «        }t          j        |¦  «        }t          j        d d …         t          j        d d …         t          j        f}|                      t          ||¦  «        d¦  «         |                      ||||¦  «         d S )Nc                 ó®   — t          j        |¦  «        D ]}| d         ||<   Œt          j        |¦  «        D ]}|| |<   Œ|dxx         | d         z  cc<   |S )Nr€   r   r¤  )r‡   rˆ   rá  rû   s       rV   r  zITestParfors.test_prange_non_parfor_index_then_opposite.<locals>.test_impll  sl   € Ý”\ $Ñ'Ô'ð ð �Ø˜”t��!‘�Ý”\ $Ñ'Ô'ð ð �Ø��!‘�àˆaˆDˆDŒD�A�a”D‰LˆDˆD‰DØˆHrX   r  ró   r©  r­  s         rV   Ú*test_prange_non_parfor_index_then_oppositez6TestParfors.test_prange_non_parfor_index_then_oppositei  s”   € ð	ð 	ð 	ð ˆÝŒH�T‰NŒNˆÝŒH�T‰NŒNˆÝ”=   Ô#¥U¤]°1°1°1Ô%5µu´{ÐCˆØ×Ò� i°Ñ9Ô9¸1Ñ=Ô=Ð=Ø�
Š
�9˜a  DÑ)Ô)Ð)Ð)Ð)rX   c                 óÜ   — dd„}t          j        d¦  «        }|                      ||d t           j        j        d„ g¬¦  «         |                      |                     ¦   «         d¦  «         d S )Nc                 ó8   — t          d¦  «        D ]	}|�d| |<   Œ
d S )Nrâ   rý  r¹  )ÚarrÚpredrû   s      rV   r  z3TestParfors.test_prange_optional.<locals>.test_impl}  s1   € Ý˜A‘Y”Yð !ð !�ØÐ#Ø �C˜‘Føð!ð !rX   r  c                 ó   — | |k    S rZ   r|   ©r£   rh  s     rV   rä  z2TestParfors.test_prange_optional.<locals>.<lambda>…  s
   € °A¸²F€ rX   r‚  rN  rZ   )r¶   r  rÚ   rÄ   rÅ   rÆ   rx  ©rS   r  r½  s      rV   Útest_prange_optionalz TestParfors.test_prange_optional|  s   € ð	!ð 	!ð 	!ð 	!õ
 Œg�b‰kŒkˆØ�
Š
�9˜c 4Ý')¤zÔ'EØ':Ð':ð'<ð 	ñ 	=ô 	=ð 	=ð 	×Ò˜Ÿš™œ DÑ)Ô)Ð)Ð)Ð)rX   c                 óê   — d„ }|                       t          ¦  «        5 }|                      |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Nc                  ó   — d} | d         S )N©g333333ó?gÍÌÌÌÌÌô?r   r|   r|  s    rV   r  z8TestParfors.test_untraced_value_tuple.<locals>.test_implŠ  s   € ØˆAØ�Q”4ˆKrX   r  r  r  s      rV   Útest_untraced_value_tuplez%TestParfors.test_untraced_value_tupleˆ  s±   € ð	ð 	ð 	ð ×Ò�~Ñ.Ô.ð 	"°&Ø�JŠJ�yÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�ŠÐ4µc¸&Ô:JÑ6KÔ6KÑLÔLÐLÐLÐLr  c                 óê   — d„ }|                       t          ¦  «        5 }|                      |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Nc                  ó"   — d} | d         d         S )N)rÅ  r   r|   r|  s    rV   r  zBTestParfors.test_recursive_untraced_value_tuple.<locals>.test_impl”  s   € ØˆAØ�Q”4˜”7ˆNrX   r  r  r  s      rV   Ú#test_recursive_untraced_value_tuplez/TestParfors.test_recursive_untraced_value_tuple’  s±   € ð	ð 	ð 	ð ×Ò�~Ñ.Ô.ð 	"°&Ø�JŠJ�yÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�ŠÐ4µc¸&Ô:JÑ6KÔ6KÑLÔLÐLÐLÐLr  c                 ó  — d„ }t          j        t           j        dd¦  «        f}|                      t	          ||¦  «        d¦  «         t          j        dt
          j        ¬¦  «        }|                      ||¦  «         d S )Nc                 óÈ  — d}t          | ¦  «        }t          j        |t          j        ¦  «        }t	          |¦  «        D ]}| |         |d         z  ||<   Œt          |¦  «        }t          j        |t          j        ¦  «        }t	          |¦  «        D ]}||         |d         z
  ||<   Œd}t          |¦  «        }	t	          |	¦  «        D ]}
|||
         z  }Œ||d         z   S )NrÅ  r   râ   rý  ©rÈ   r¶   rÜ  r’  r   )r½  r‡   Ún1Úarr2rû   Ún2Úarr3ry  ÚtotalÚn3r´   s              rV   r  z9TestParfors.test_untraced_value_parfor.<locals>.test_implž  sÞ   € ØˆAÝ�S‘”ˆBÝ”8˜B¥¤
Ñ+Ô+ˆDÝ˜B‘Z”Zð (ð (�Ø˜aœ& 1 Q¤4™-��Q‘�Ý�T‘”ˆBÝ”8˜B¥¤
Ñ+Ô+ˆDÝ˜B‘Z”Zð )ð )�Ø˜qœ' A a¤D™.��Q‘�ØˆEÝ�T‘”ˆBÝ˜B‘Z”Zð !ð !�Ø˜˜aœÑ ��Ø˜1˜Qœ4‘<ÐrX   râ   rš  r  r"  )r   rœ  r�  rÆ   rä   r¶   rþ  rÚ   )rS   r  rÈ  r½  s       rV   Útest_untraced_value_parforz&TestParfors.test_untraced_value_parforœ  s{   € ð	 ð 	 ð 	 õ  Œ{�5œ;¨¨3Ñ/Ô/Ð2ˆØ×Ò� i°Ñ5Ô5°qÑ9Ô9Ð9åŒi˜¥"¤(Ð+Ñ+Ô+ˆØ�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   c                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 óh   — d}t          | j        d         ¦  «        D ]}|r| d| |d d …f<   |dz  }Œ| S r¿  )rý   r‡  )r£   rL  r÷   s      rV   r  z;TestParfors.test_setitem_2d_one_replaced.<locals>.test_impl¶  sR   € ØˆEÝ˜1œ7 1œ:Ñ&Ô&ð ð �àð Ø�AØ��%˜˜˜�(‘Ø˜‘
��ØˆHrX   )r  râ   rv  r  s     rV   Útest_setitem_2d_one_replacedz(TestParfors.test_setitem_2d_one_replaced´  s7   € ð	ð 	ð 	ð 	�
Š
�9�bœh vÑ.Ô.Ñ/Ô/Ð/Ð/Ð/rX   c                 óÄ   — d„ }t          j        d¦  «        }|                      ||dd¦  «         |                      ||dd¦  «         |                      ||dd¦  «         d S )Nc                 ó¶   — t          j        | j        ¦  «        }|r|                     t           j        ¦  «        S |r	||         }n||dz
           }|| j        z  S r  )r¶   rþ  rá  r  r’  )r½  Úflag1Úflag2Úinvr&  s        rV   r  z7TestParfors.test_1array_control_flow.<locals>.test_implÄ  s[   € Ý”)˜CœHÑ%Ô%ˆCØð .Ø—z’z¥"¤*Ñ-Ô-Ð-Øð #Ø˜#”h��à˜# ™'”l�Ø˜œ‘>Ð!rX   rß  TFr  rÁ  s      rV   Útest_1array_control_flowz$TestParfors.test_1array_control_flowÂ  sn   € ð	"ð 	"ð 	"õ Œi˜‰nŒnˆØ�
Š
�9˜c 4¨Ñ/Ô/Ð/Ø�
Š
�9˜c 4¨Ñ.Ô.Ð.Ø�
Š
�9˜c 5¨%Ñ0Ô0Ð0Ð0Ð0rX   c                 ó”   — d„ }t          j        d¦  «        }|                      ||dd¦  «         |                      ||dd¦  «         d S )Nc                 ó¤   — t          j        | j        ¦  «        }t          j        || j        |z   ¦  «        }|r	||         }n||dz
           }||z  S r  ©r¶   rþ  rá  )r½  rŒ  ÚflagÚinv1Úinv2r&  s         rV   r  z9TestParfors.test_2array_1_control_flow.<locals>.test_implÕ  sT   € Ý”9˜SœXÑ&Ô&ˆDÝ”9˜Q ¤¨1¡Ñ-Ô-ˆDØð %Ø˜4”j��à˜4 !™8”n�Ø˜‘:ÐrX   rß  r  TFr  rÁ  s      rV   Útest_2array_1_control_flowz&TestParfors.test_2array_1_control_flowÓ  sV   € ð	ð 	ð 	õ Œi˜‰nŒnˆØ�
Š
�9˜c 2 tÑ,Ô,Ð,Ø�
Š
�9˜c 2 uÑ-Ô-Ð-Ð-Ð-rX   c                 ó”   — d„ }t          j        d¦  «        }|                      ||dd¦  «         |                      ||dd¦  «         d S )Nc                 óÊ   — t          j        | j        ¦  «        }t          j        || j        |z   ¦  «        }|r||         }||         }n||dz
           }||dz
           }||z  S r  rß  )r½  rŒ  rà  rá  râ  Úret1Úret2s          rV   r  z9TestParfors.test_2array_2_control_flow.<locals>.test_implä  sj   € Ý”9˜SœXÑ&Ô&ˆDÝ”9˜Q ¤¨1¡Ñ-Ô-ˆDØð &Ø˜D”z�Ø˜D”z��à˜D 1™H”~�Ø˜D 1™H”~�Ø˜$‘;ÐrX   rß  r  TFr  rÁ  s      rV   Útest_2array_2_control_flowz&TestParfors.test_2array_2_control_flowâ  sV   € ð		ð 		ð 		õ Œi˜‰nŒnˆØ�
Š
�9˜c 2 tÑ,Ô,Ð,Ø�
Š
�9˜c 2 uÑ-Ô-Ð-Ð-Ð-rX   c                 ó–   — d„ }|                       |d¦  «         |                      t          |t          j        f¦  «        d¦  «         d S )Nc                 ó^  — t          j        | t           j        ¬¦  «        }t          j        | t           j        ¬¦  «        }t          | ¦  «        D ]$}t	          |¦  «        D ]}||xx         dz  cc<   ŒŒ%t          | ¦  «        D ] }|dk    rŒ	||         ||dz
           z
  ||<   Œ!|dd …         S )Nr"  râ   r   )r¶   r;  rŽ  r   rý   )r÷   ÚrÚcrû   ry  s        rV   r  z-TestParfors.test_issue8515.<locals>.test_impl÷  s¿   € Ý”˜¥"¤'Ð*Ñ*Ô*ˆAÝ”˜¥"¤'Ð*Ñ*Ô*ˆAÝ˜A‘Y”Yð ð �Ý˜q™œð ð �AØ�a�D�D”D˜A‘I�D�D‘D�Dðõ ˜A‘Y”Yð 'ð '�Ø˜’6�6ØØ˜”t˜a  A¡œh‘��!‘�Ø�Q�R�R”5ˆLrX   rg  ró   )rÚ   rÆ   rä   r   r�  r  s     rV   Útest_issue8515zTestParfors.test_issue8515ó  sQ   € ð	ð 	ð 	ð 	�
Š
�9˜bÑ!Ô!Ð!Ø×Ò� iµ%´+°ÑAÔAÀ1ÑEÔEÐEÐEÐErX   c                 ó:   — d„ }|                       |dd¦  «         d S )Nc                 ó6  — d}d}t          j        ||f¦  «        }t          |¦  «        D ]n}t          |¦  «        D ]\}t          j        |¦  «        }|d         }t          j        |¦  «        }	t	          | |¦  «        D ]}
d|	|
<   Œ|	d         }||z   |||f<   Œ]Œo|S )NrØ  r  r   râ   )r¶   rÜ  rý   r  r   )Úi1Úi2r‹  rb  r‡   rh  r£   rØ  rí  Úp2rû   ry  s               rV   r  z-TestParfors.test_issue9029.<locals>.test_impl
	  s¶   € ØˆAØˆAÝ”˜!˜A˜‘”ˆAõ ˜1‘X”Xð 
#ð 
#�Ý˜q™œð 	#ð 	#�AÝœW Q™ZœZ�FØ˜qœ	�Aåœ !™œ�BÝ# B¨™^œ^ð "ð "˜Ø !˜˜1™˜Ø˜1œ�Aà ™U�A�a˜�c‘F�Fð	#ð ˆHrX   r   r  r  r  s     rV   Útest_issue9029zTestParfors.test_issue9029	  s/   € ð	ð 	ð 	ð, 	�
Š
�9˜a Ñ#Ô#Ð#Ð#Ð#rX   c                 ó®   — d„ }|                       |dd¦  «         |                      t          |t          j        t          j        f¦  «        d¦  «         d S )Nc                 óÄ   — t          j        d¦  «        }t          j        |¦  «        }t          j        d¦  «        }t	          t          | |¦  «        ¦  «        }||z   |z   S ©Nrß  )r¶   r  rw  ÚceilÚintr®  )r‡   rˆ   ro  rn  rì  s        rV   r  z:TestParfors.test_fusion_no_side_effects.<locals>.test_impl#	  sJ   € Ý”˜‘”ˆAÝ”	˜!‘”ˆAÝ”˜‘”ˆAÝ•C˜˜1‘I”I‘”ˆAØ�q‘5˜1‘9ÐrX   gš™™™™™@g333333@râ   )rÚ   rÆ   rä   r   r’  r  s     rV   Útest_fusion_no_side_effectsz'TestParfors.test_fusion_no_side_effects"	  sY   € ð	ð 	ð 	ð 	�
Š
�9˜c 3Ñ'Ô'Ð'Ø×Ò� iµ%´-ÅÄÐ1OÑPÔPÐRSÑTÔTÐTÐTÐTrX   c                 óœ   — t          d¬¦  «        d„ ¦   «         }|                       |d¦  «        |                     d¦  «        ¦  «         d S )NTr“   c                 óP   — d}t          d¦  «         t          | ¦  «        D ]}|}Œ|S r¿  ©r   r   )r£   rì  rû   s      rV   Údef_in_loopzCTestParfors.test_issue9256_lower_sroa_conflict.<locals>.def_in_loop-	  s6   € àˆAÝ˜AÑÔÐÝ˜A‘Y”Yð ð �Ø��ØˆHrX   r  ©r   rÆ   Úpy_func)rS   rý  s     rV   Ú"test_issue9256_lower_sroa_conflictz.TestParfors.test_issue9256_lower_sroa_conflict,	  s[   € Ý	�tÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	ð 	×Ò˜˜ R™œ¨+×*=Ò*=¸bÑ*AÔ*AÑBÔBÐBÐBÐBrX   c                 óú   — d„ } |d¦  «        }|                       |  t          d¬¦  «        |¦  «        d¦  «        ¦  «         |                       |  t          d¬¦  «        |¦  «        d¦  «        ¦  «         d S )Nc                 óf   — | }t          d¦  «         t          | ¦  «        D ]	}|r| dz   }Œ
||dk    fS ©Nrâ   r  r   rü  )r£   rì  Ú_irÏ  s       rV   rý  zLTestParfors.test_issue9256_lower_sroa_conflict_variant1.<locals>.def_in_loop8	  sI   € ØˆAÝ˜AÑÔÐÝ˜Q‘i”ið ð �Øð Ø˜A™�AøØ�a˜!’e�8ˆOrX   r  Fr“   T©rÆ   r   ©rS   rý  rŠ  s      rV   Ú+test_issue9256_lower_sroa_conflict_variant1z7TestParfors.test_issue9256_lower_sroa_conflict_variant17	  s”   € ð	ð 	ð 	ð �;˜q‘>”>ˆØ×Ò˜Ð#DÐ#7¥4°Ð#7Ñ#7Ô#7¸Ñ#DÔ#DÀQÑ#GÔ#GÑHÔHÐHØ×Ò˜Ð#CÐ#6¥4°Ð#6Ñ#6Ô#6°{Ñ#CÔ#CÀAÑ#FÔ#FÑGÔGÐGÐGÐGrX   c                 óú   — d„ } |d¦  «        }|                       |  t          d¬¦  «        |¦  «        d¦  «        ¦  «         |                       |  t          d¬¦  «        |¦  «        d¦  «        ¦  «         d S )Nc                 óŠ   — | }t          d¦  «         t          | ¦  «        D ]}|rt          | ¦  «        D ]}| dz   }ŒŒ||dk    fS r  )r   r   rý   )r£   rì  r  Ú_jrÏ  s        rV   rý  zLTestParfors.test_issue9256_lower_sroa_conflict_variant2.<locals>.def_in_loopE	  s`   € ØˆAÝ˜AÑÔÐÝ˜Q‘i”ið "ð "�Øð "Ý# A™hœhð "ð "˜Ø ™E˜˜øØ�a˜!’e�8ˆOrX   r  Fr“   Tr  r  s      rV   Ú+test_issue9256_lower_sroa_conflict_variant2z7TestParfors.test_issue9256_lower_sroa_conflict_variant2D	  s”   € ð	ð 	ð 	ð �;˜q‘>”>ˆØ×Ò˜Ð#DÐ#7¥4°Ð#7Ñ#7Ô#7¸Ñ#DÔ#DÀQÑ#GÔ#GÑHÔHÐHØ×Ò˜Ð#CÐ#6¥4°Ð#6Ñ#6Ô#6°{Ñ#CÔ#CÀAÑ#FÔ#FÑGÔGÐGÐGÐGrX   c                 ó
  — t           j        ddg}i t          j        ¥dddœ¥}	 t	          j        ||t          j        d¬¦  «         d S # t          j        $ r+}d|j        › �}|  	                    |¬¦  «         Y d }~d S d }~ww xY w)	Nz-mz"numba.tests.parfor_iss9490_usecaseÚ1)ÚPYTHONHASHSEEDÚNUMBA_NUM_THREADSzutf-8)ÚenvÚstderrÚencodingzsubprocess failed with output:
)rï   )
ÚsysÚ
executableÚosÚenvironÚsubpÚcheck_outputÚSTDOUTÚCalledProcessErrorÚoutputÚfail)rS   ÚcmdÚenvsr  rï   s        rV   Ú"test_issue9490_non_det_ssa_problemz.TestParfors.test_issue9490_non_det_ssa_problemR	  sÎ   € õ ŒNØØ0ð
ˆð

ÝŒjð
ð "ð "%ð
ð 
ð 
ˆð	ÝÔ˜c tÝ%)¤[Ø'.ð0ñ 0ô 0ð 0ð 0ð 0øõ Ô&ð 	ð 	ð 	Ø?°Q´XÐ?Ð?ˆCØ�IŠI˜#ˆIÑÔÐÐÐÐÐÐÐøøøøð	øøøs   ¤"A ÁBÁ A=Á=BN)Urw   rN   rx   rT  rv  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$  r(  r.  r3  r8  r<  r?  rD  rH  rN  rR  r[  r^  rd  rh  rr  rw  rz  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|   rX   rV   rq  rq  )  s  € € € € € à@Ð@ðNð Nð Nð9ð 9ð 9ð9ð 9ð 9ð9ð 9ð 9ð!ð !ð !ð2ð 2ð 2ð1ð 1ð 1ð .Jð .Jð .Jð`-ð -ð -ð-ð -ð -ð"
-ð 
-ð 
-ð	Cð 	Cð 	CðSð Sð Sð(Qð Qð Qð ð$+ð $+ñ „Zð$+ðL!ð !ð !ðSð Sð Sð ð#ð #ñ „]ð#ð ðOð Oñ „ZðOð"$ð $ð $ð	Hð 	Hð 	Hð"ð "ð "ðGð Gð GðGð Gð Gð#ð #ð #ð"	#ð 	#ð 	#ð#ð #ð #ð#ð #ð #ð#ð #ð #ð
#ð 
#ð 
#ð!ð !ð !ð>ð >ð >ð3ð 3ð 3ð
ð 
ð 
ð
?ð 
?ð 
?ðNð Nð Nð$	!ð 	!ð 	!ð	!ð 	!ð 	!ð	!ð 	!ð 	!ð	!ð 	!ð 	!ð
!ð 
!ð 
!ð@ð @ð @ð
Nð 
Nð 
Nð!ð !ð !ð!ð !ð !ð !ð !ð !ð!ð !ð !ð0ð 0ð 0ð5ð 5ð 5ð,ð ,ð ,ð0ð 0ð 0ðð ð ð00ð 0ð 0ð,ð ,ð ,ð5ð 5ð 5ð6ð 6ð 6ð'ð 'ð 'ð*'ð 'ð 'ð$*ð *ð *ð&'ð 'ð 'ð"*ð *ð *ð(*ð *ð *ð&
*ð 
*ð 
*ðMð Mð MðMð Mð Mð#ð #ð #ð00ð 0ð 0ð1ð 1ð 1ð".ð .ð .ð.ð .ð .ð"Fð Fð Fð($ð $ð $ð6Uð Uð Uð	Cð 	Cð 	CðHð Hð HðHð Hð Hð Ø"ðð ñ #Ô"ñ „\ðð ð rX   rq  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestParforsLeaksc                 óN   —  | j         |g|¢R Ž \  }} | j        |||g|¢R i |¤Ž d S rZ   rØ   rÙ   s         rV   rÚ   zTestParforsLeaks.checko	  óM   € Ø(˜Ô(¨Ð7°$Ð7Ð7Ð7‰ˆˆvØ$ˆÔ$ V¨U°FÐL¸TÐLÐLÐLÀVÐLÐLÐLÐLÐLrX   c                 óš   — d„ }t          j        d¦  «                             t           j        ¦  «        }|                      ||¦  «         d S )Nc                 ó*   — |                       ¦   «         S rZ   ra  )r½  s    rV   r  z2TestParforsLeaks.test_reduction.<locals>.test_implu	  s   € Ø—7’7‘9”9ÐrX   r  ©r¶   rþ  r  r’  rÚ   rÁ  s      rV   Útest_reductionzTestParforsLeaks.test_reductions	  sJ   € ð	ð 	ð 	õ Œi˜‰mŒm×"Ò"¥2¤:Ñ.Ô.ˆØ�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   c                 óš   — d„ }t          j        d¦  «                             t           j        ¦  «        }|                      ||¦  «         d S )Nc                 óz   — d}d}t          | j        ¦  «        D ]}|| |         z  }|d| |         dz   z  z  }Œ||z  S )Nrý  rW  râ   )r   rá  )r½  r‡   rˆ   rû   s       rV   r  z@TestParforsLeaks.test_multiple_reduction_vars.<locals>.test_impl}	  sT   € ØˆAØˆAÝ˜CœHÑ%Ô%ð 'ð '�Ø�S˜”V‘�Ø�R˜3˜qœ6 A™:Ñ&Ñ&��Ø�q‘5ˆLrX   r  r&  rÁ  s      rV   Útest_multiple_reduction_varsz-TestParforsLeaks.test_multiple_reduction_vars{	  sJ   € ð	ð 	ð 	õ Œi˜‰mŒm×"Ò"¥2¤:Ñ.Ô.ˆØ�
Š
�9˜cÑ"Ô"Ð"Ð"Ð"rX   N)rw   rN   rx   rÚ   r'  r*  r|   rX   rV   r!  r!  m	  sD   € € € € € ðMð Mð Mð#ð #ð #ð
#ð 
#ð 
#ð 
#ð 
#rX   r!  c                   óö   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ ¦   «         Ze
d	„ ¦   «         Ze
d
„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Ze
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S )ÚTestParforsSlicec                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 óN   — | j         \  }| d|dz
  …         | d|dz
  …         z   }|S ©Nr   ró   râ   ©r‡  ©r‡   r÷   rˆ   s      rV   r  z6TestParforsSlice.test_parfor_slice1.<locals>.test_implŒ	  s2   € Ø”7‰DˆQØ�!�A�a‘C�%”˜1˜Q˜q ™s˜Uœ8Ñ#ˆAØˆHrX   r  ©rÚ   r¶   r  r  s     rV   Útest_parfor_slice1z#TestParforsSlice.test_parfor_slice1‹	  s5   € ð	ð 	ð 	ð
 	�
Š
�9�bœg b™kœkÑ*Ô*Ð*Ð*Ð*rX   c                 ó|  — d„ }|                       |t          j        d¦  «        d¦  «         |                      t          ¦  «        5 }  t          d¬¦  «        |¦  «        t          j        d¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 óH   — | j         \  }| d|dz
  …         | d|…         z   }|S r/  r0  ©r‡   r>  r÷   rˆ   s       rV   r  z6TestParforsSlice.test_parfor_slice2.<locals>.test_impl”	  s.   € Ø”7‰DˆQØ�!�A�a‘C�%”˜1˜Q˜q˜Sœ6Ñ!ˆAØˆHrX   r  r�  Tr“   údo not match©	rÚ   r¶   r  r  r	  r   rê   r  r
  r  s      rV   Útest_parfor_slice2z#TestParforsSlice.test_parfor_slice2“	  sì   € ð	ð 	ð 	ð 	�
Š
�9�bœg b™kœk¨1Ñ-Ô-Ð-à×Ò�~Ñ.Ô.ð 	;°&Ø*Ð�D˜$ÐÑÔ 	Ñ*Ô*­2¬7°2©;¬;°rÑ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;à�Š�n¥c¨&Ô*:Ñ&;Ô&;Ñ<Ô<Ð<Ð<Ð<s   Á6B	Â	BÂBc                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 ó`   — | j         \  }}| d|dz
  …d|dz
  …f         | d|…d|…f         z   }|S r¿  r0  r6  s       rV   r  z6TestParforsSlice.test_parfor_slice3.<locals>.test_impl¡	  sD   € Ø”G‰EˆQˆqØ�!�A�a‘C�%˜˜!˜A™#˜�+”  1 Q 3 q¨ s 7¤Ñ+ˆAØˆHrX   ©r  r  r2  r  s     rV   Útest_parfor_slice3z#TestParforsSlice.test_parfor_slice3 	  ó5   € ð	ð 	ð 	ð
 	�
Š
�9�bœg e™nœnÑ-Ô-Ð-Ð-Ð-rX   c                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 óZ   — | j         \  }}| d d …d|dz
  …f         | d d …d|…f         z   }|S r¿  r0  r6  s       rV   r  z6TestParforsSlice.test_parfor_slice4.<locals>.test_impl©	  s@   € Ø”G‰EˆQˆqØ�!�!�!�A�a˜‘c�E�'”
˜Q˜q˜q˜q  1 ˜uœXÑ%ˆAØˆHrX   r<  r2  r  s     rV   Útest_parfor_slice4z#TestParforsSlice.test_parfor_slice4¨	  r>  rX   c                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 óZ   — | j         \  }}| d|dz
  …d d …f         | d|…d d …f         z   }|S r¿  r0  r6  s       rV   r  z6TestParforsSlice.test_parfor_slice5.<locals>.test_impl±	  s@   € Ø”G‰EˆQˆqØ�!�A�a‘C�%˜˜˜�'”
˜Q˜q ˜s 1 1 1˜uœXÑ%ˆAØˆHrX   r<  r2  r  s     rV   Útest_parfor_slice5z#TestParforsSlice.test_parfor_slice5°	  r>  rX   c                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 ó`   — |                       ¦   «         }| dd d …f         |d d …df         z   }|S r  ©Ú	transpose©r‡   rˆ   rì  s      rV   r  z6TestParforsSlice.test_parfor_slice6.<locals>.test_impl¹	  s5   € Ø—’‘”ˆAØ�!�A�A�A�#”˜˜1˜1˜1˜Q˜3œ‘ˆAØˆHrX   r<  r2  r  s     rV   Útest_parfor_slice6z#TestParforsSlice.test_parfor_slice6¸	  r>  rX   c                 óx  — d„ }|                       |t          j        d¦  «        ¦  «         |                      t          ¦  «        5 }  t          d¬¦  «        |¦  «        t          j        d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nc                 ó`   — |                       ¦   «         }| dd d …f         |dd d …f         z   }|S r  rG  rI  s      rV   r  z6TestParforsSlice.test_parfor_slice7.<locals>.test_implÁ	  s5   € Ø—’‘”ˆAØ�!�A�A�A�#”˜˜1˜Q˜Q˜Q˜3œ‘ˆAØˆHrX   rc  Tr“   rû  r7  r8  r  s      rV   Útest_parfor_slice7z#TestParforsSlice.test_parfor_slice7À	  sè   € ð	ð 	ð 	ð 	�
Š
�9�bœg e™nœnÑ-Ô-Ð-à×Ò�~Ñ.Ô.ð 	;°&Ø*Ð�D˜$ÐÑÔ 	Ñ*Ô*­2¬7°5©>¬>Ñ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;à�Š�n¥c¨&Ô*:Ñ&;Ô&;Ñ<Ô<Ð<Ð<Ð<s   Á5BÂBÂBc                 ó‚   — d„ }|                       |t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 óp   — | j         \  }}|                      ¦   «         }| d|…d|…f         |d|…d|…f<   |S r  ©r‡  rH  r6  s       rV   r  z6TestParforsSlice.test_parfor_slice8.<locals>.test_implÏ	  sD   € Ø”G‰EˆQˆqØ—’‘”ˆAØ˜1˜Q˜3˜q ˜s˜7œˆAˆa�ˆc�!�A�#ˆg‰JØˆHrX   r�  rc  ©rÚ   r¶   rþ  r  r  s     rV   Útest_parfor_slice8z#TestParforsSlice.test_parfor_slice8Í	  óC   € ð	ð 	ð 	ð 	�
Š
�9�bœi¨™lœl×2Ò2°5Ñ9Ô9Ñ:Ô:Ð:Ð:Ð:rX   c                 ó‚   — d„ }|                       |t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 óp   — | j         \  }}|                      ¦   «         }| d d …d|…f         |d|…d|…f<   |S r  rP  r6  s       rV   r  z6TestParforsSlice.test_parfor_slice9.<locals>.test_implÙ	  sD   € Ø”G‰EˆQˆqØ—’‘”ˆAØ˜1˜1˜1˜Q˜q˜S˜5œˆAˆa�ˆc�!�A�#ˆg‰JØˆHrX   rz  rû  rQ  r  s     rV   Útest_parfor_slice9z#TestParforsSlice.test_parfor_slice9×	  sC   € ð	ð 	ð 	ð 	�
Š
�9�bœi¨™mœm×3Ò3°EÑ:Ô:Ñ;Ô;Ð;Ð;Ð;rX   c                 ó‚   — d„ }|                       |t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 óh   — | j         \  }}|                      ¦   «         }| dd|…f         |dd|…f<   |S r–  rP  r6  s       rV   r  z7TestParforsSlice.test_parfor_slice10.<locals>.test_implã	  s<   € Ø”G‰EˆQˆqØ—’‘”ˆAØ˜˜1˜Q˜3˜”xˆAˆa��!�ˆe‰HØˆHrX   r�  rc  rQ  r  s     rV   Útest_parfor_slice10z$TestParforsSlice.test_parfor_slice10á	  rS  rX   c                 ó‚   — d„ }|                       |t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 óv   — | j         \  }}}|                      ¦   «         }| d d …dd|…f         |d d …dd|…f<   |S r–  ©r‡  r¹   )r‡   r>  r÷   rŒ  rˆ   s        rV   r  z7TestParforsSlice.test_parfor_slice11.<locals>.test_implì	  sJ   € Ø”g‰GˆQˆq�Ø—’‘”ˆAØ˜1˜1˜1˜Q˜q ˜s˜7œˆAˆaˆaˆa��!�A�#ˆg‰JØˆHrX   é   )r  r  r  rQ  r  s     rV   Útest_parfor_slice11z$TestParforsSlice.test_parfor_slice11ë	  sC   € ð	ð 	ð 	ð 	�
Š
�9�bœi¨™mœm×3Ò3°GÑ<Ô<Ñ=Ô=Ð=Ð=Ð=rX   c                 ó‚   — d„ }|                       |t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 óh   — | j         \  }}|                      ¦   «         }| dd d…f         |ddd…f<   |S )Nr   éþÿÿÿrâ   rI   r\  r6  s       rV   r  z7TestParforsSlice.test_parfor_slice12.<locals>.test_implõ	  s<   € Ø”G‰EˆQˆqØ—’‘”ˆAØ˜!˜C˜R˜C˜%œˆAˆa��"�ˆf‰IØˆHrX   rz  rû  rQ  r  s     rV   Útest_parfor_slice12z$TestParforsSlice.test_parfor_slice12ô	  óC   € ð	ð 	ð 	ð 	�
Š
�9�bœi¨™mœm×3Ò3°EÑ:Ô:Ñ;Ô;Ð;Ð;Ð;rX   c                 ó‚   — d„ }|                       |t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 ót   — | j         \  }}|                      ¦   «         }d}| d| |dz
  …f         |dd|…f<   |S )NrI   r   râ   r\  )r‡   r>  r÷   rˆ   rì  s        rV   r  z7TestParforsSlice.test_parfor_slice13.<locals>.test_implþ	  sG   € Ø”G‰EˆQˆqØ—’‘”ˆAØˆAØ˜˜A˜2˜a ™c˜6˜”{ˆAˆa��!�ˆe‰HØˆHrX   rz  rû  rQ  r  s     rV   Útest_parfor_slice13z$TestParforsSlice.test_parfor_slice13ý	  sC   € ð	ð 	ð 	ð 	�
Š
�9�bœi¨™mœm×3Ò3°EÑ:Ô:Ñ;Ô;Ð;Ð;Ð;rX   c                 ó‚   — d„ }|                       |t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 óh   — | j         \  }}|                      ¦   «         }| ddd…f         |dd d…f<   |S )Nr   éýÿÿÿr  râ   rI   r\  r6  s       rV   r  z7TestParforsSlice.test_parfor_slice14.<locals>.test_impl
  s<   € Ø”G‰EˆQˆqØ—’‘”ˆAØ˜˜2˜a˜4˜”yˆAˆa���ˆe‰HØˆHrX   rz  rû  rQ  r  s     rV   Útest_parfor_slice14z$TestParforsSlice.test_parfor_slice14
  rc  rX   c                 ó‚   — d„ }|                       |t          j        d¦  «                             d¦  «        ¦  «         d S )Nc                 óp   — | j         \  }}|                      ¦   «         }| ddd…f         |d|dz
   d …f<   |S )Nr   ri  r  râ   r\  r6  s       rV   r  z7TestParforsSlice.test_parfor_slice15.<locals>.test_impl
  sB   € Ø”G‰EˆQˆqØ—’‘”ˆAØ˜Q˜r !˜t˜Vœ9ˆAˆa�!�A‘#���ˆi‰LØˆHrX   rz  rû  rQ  r  s     rV   Útest_parfor_slice15z$TestParforsSlice.test_parfor_slice15
  rc  rX   c                 ó2  — d„ }|                       |t          j        d¦  «        t          j        d¦  «        d¦  «         t          j        dd…         t          j        dd…         t          j        f}|                      t          ||¦  «        d¦  «         dS )zÞ This test is disabled because if n is larger than the array size
            then n and n-1 will both be the end of the array and thus the
            slices will in fact be of different sizes and unable to fuse.
        c                 óR   — | j         |j         k    sJ ‚d| d|…<   d|d|dz
  …<   | |z  S ©Nr  râ   r   r0  )r‡   rˆ   r÷   s      rV   r  z7TestParforsSlice.test_parfor_slice16.<locals>.test_impl
  s>   € Ø”7˜aœgÒ%Ð%Ð%Ð%ØˆAˆa�ˆc‰FØˆAˆa��1‘ˆg‰JØ�q‘5ˆLrX   r  é   Nró   )	rÚ   r¶   r  r;  r    r’  r�  rÆ   rä   ©rS   r  r¨   s      rV   Útest_parfor_slice16z$TestParforsSlice.test_parfor_slice16
  s…   € ð	ð 	ð 	ð 	�
Š
�9�bœg b™kœk­2¬8°B©<¬<¸Ñ;Ô;Ð;Ý”˜a˜a˜aÔ ¥%¤-°°°Ô"2µE´KÐ@ˆØ×Ò� i°Ñ6Ô6¸Ñ:Ô:Ð:Ð:Ð:rX   c                 ó^   — d„ }|                       |dt          j        d¦  «        ¦  «         d S )Nc                 ó\   — t          j        | ¦  «        }t          |¦  «        }||| d …<   |S rZ   ©r¶   r;  rÈ   )r>  rz  rª  r÷   s       rV   r  z7TestParforsSlice.test_parfor_slice17.<locals>.test_impl*
  s.   € Ý”˜‘”ˆAÝ�A‘”ˆAØˆAˆqˆbˆcˆc‰FØˆHrX   r  r2  r  s     rV   Útest_parfor_slice17z$TestParforsSlice.test_parfor_slice17)
  s7   € ð	ð 	ð 	ð 	�
Š
�9˜b¥"¤'¨"¡+¤+Ñ.Ô.Ð.Ð.Ð.rX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ór   — t          j        d¦  «        } t          j        dd¦  «        | dd…<   | d         }|S )Nr  r   r_  râ   rq  r  )r¶   r;  rþ  )r‡   rh  s     rV   r  z7TestParforsSlice.test_parfor_slice18.<locals>.test_impl4
  s4   € Ý”˜‘”ˆAÝ”Y˜q !‘_”_ˆAˆa�ˆc‰FØ�!”ˆAØˆHrX   r  r  s     rV   Útest_parfor_slice18z$TestParforsSlice.test_parfor_slice182
  s+   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐÐÐrX   c                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 ó*   — | d d…xx         dz  cc<   | S r¿  r|   r'  s    rV   r  z7TestParforsSlice.test_parfor_slice19.<locals>.test_impl>
  s    € ØˆbˆqˆbˆEˆEŒE�Q‰JˆEˆE‰EØˆHrX   r  r2  r  s     rV   Útest_parfor_slice19z$TestParforsSlice.test_parfor_slice19<
  ó5   € ð	ð 	ð 	ð 	�
Š
�9�bœg b™kœkÑ*Ô*Ð*Ð*Ð*rX   c                 ó:   — d„ }|                       |d¬¦  «         d S )Nc                  ó`   — t          j        d¦  «        } | dd …         }t          |¦  «        }|S )Nr  râ   )r¶   r  rÈ   )r‡   rì  r¼  s      rV   r  z7TestParforsSlice.test_parfor_slice20.<locals>.test_implF
  s,   € Ý”˜‘”ˆAØ�!�"�"”ˆAÝ�A‘”ˆAØˆHrX   Fr`  r  r  s     rV   Útest_parfor_slice20z$TestParforsSlice.test_parfor_slice20D
  s/   € ð	ð 	ð 	ð 	�
Š
�9¨uˆ
Ñ5Ô5Ð5Ð5Ð5rX   c                 ó¶   — d„ }t           j                             d¦  «        }t           j                             d¦  «        }|                      |||¦  «         d S )Nc                 ó’   — |                       | j        d¦  «        } |                      |j        d¦  «        }| |d d…d d …f         k    S )Nrâ   rI   )r  rá  )Úx1Úx2s     rV   r  z7TestParforsSlice.test_parfor_slice21.<locals>.test_implO
  sG   € Ø—’˜BœG QÑ'Ô'ˆBØ—’˜BœG QÑ'Ô'ˆBØ˜˜C˜R˜C   ˜FœÒ#Ð#rX   r€   r  )r¶   r‰  r–  rÚ   ©rS   r  r„  r…  s       rV   Útest_parfor_slice21z$TestParforsSlice.test_parfor_slice21N
  sU   € ð	$ð 	$ð 	$õ
 ŒY�^Š^˜AÑÔˆÝŒY�^Š^˜AÑÔˆØ�
Š
�9˜b "Ñ%Ô%Ð%Ð%Ð%rX   c                 óŠ   — d„ }t          j        d¦  «        }t          j        d¦  «        }|                      |||¦  «         d S )Nc                 óp   — t          j        d¦  «        }t          d¦  «        D ]}|| d d …|f         z  }Œ|S r”  )r¶   r;  r   )r„  r…  rˆ   rû   s       rV   r  z7TestParforsSlice.test_parfor_slice22.<locals>.test_implY
  s@   € Ý”˜‘”ˆAÝ˜A‘Y”Yð ð �Ø�R˜˜˜˜2˜”Y‘��ØˆHrX   )r  r_  r  )r¶   r;  rˆ  rÚ   r†  s       rV   Útest_parfor_slice22z$TestParforsSlice.test_parfor_slice22X
  sK   € ð	ð 	ð 	õ ŒX�fÑÔˆÝŒX�a‰[Œ[ˆØ�
Š
�9˜b "Ñ%Ô%Ð%Ð%Ð%rX   c                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 ó   — d| d d…<   | S )Nró   r   r|   r8  s    rV   r  z7TestParforsSlice.test_parfor_slice23.<locals>.test_imple
  s   € ØˆAˆbˆqˆb‰EØˆHrX   r  r2  r  s     rV   Útest_parfor_slice23z$TestParforsSlice.test_parfor_slice23c
  r~  rX   c                 ó†   — d„ }t          dd¦  «        D ],}|                      |dt          j        d¦  «        |¦  «         Œ-d S )Nc                 óp   — t          j        | ¦  «        }||d …         }|d t          |¦  «        …         }|S rZ   rv  ©r>  rz  r÷   rª  rš  s        rV   r  z7TestParforsSlice.test_parfor_slice24.<locals>.test_impll
  s4   € Ý”˜‘”ˆAØ�!�"�"”ˆAØ�'•3�q‘6”6�'”
ˆAØˆHrX   éñÿÿÿrg  r  ©rý   rÚ   r¶   r  ©rS   r  rû   s      rV   Útest_parfor_slice24z$TestParforsSlice.test_parfor_slice24k
  óW   € ð	ð 	ð 	õ �s˜B‘”ð 	6ð 	6ˆAØ�JŠJ�y "¥b¤g¨b¡k¤k°1Ñ5Ô5Ð5Ð5ð	6ð 	6rX   c                 ó†   — d„ }t          dd¦  «        D ],}|                      |dt          j        d¦  «        |¦  «         Œ-d S )Nc                 óp   — t          j        | ¦  «        }|d |…         }|d t          |¦  «        …         }|S rZ   rv  r�  s        rV   r  z7TestParforsSlice.test_parfor_slice25.<locals>.test_implv
  s4   € Ý”˜‘”ˆAØ�"�1�"”ˆAØ�'•3�q‘6”6�'”
ˆAØˆHrX   r‘  rg  r  r’  r“  s      rV   Útest_parfor_slice25z$TestParforsSlice.test_parfor_slice25u
  r•  rX   c                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 óf   — | j         \  }|                      ¦   «         }| dd…         ||dz
   d …<   |S )Nri  r  râ   r\  r1  s      rV   r  z7TestParforsSlice.test_parfor_slice26.<locals>.test_impl€
  s8   € Ø”7‰DˆQØ—’‘”ˆAØ˜2˜a˜4œˆA��!‘ˆfˆgˆg‰JØˆHrX   r  ©rÚ   r¶   rþ  r  s     rV   Útest_parfor_slice26z$TestParforsSlice.test_parfor_slice26
  s5   € ð	ð 	ð 	ð 	�
Š
�9�bœi¨™lœlÑ+Ô+Ð+Ð+Ð+rX   c                 ó\   — d„ }|                       |t          j        d¦  «        ¦  «         d S )Nc                 ó~   — d}t          | j        d         ¦  «        D ]}| |         dk    r|dz  }|r
| d |…         }Œ dS r¿  ró  )r‡   Ún_valid_valsrû   Úunuseds       rV   r  z7TestParforsSlice.test_parfor_slice27.<locals>.test_impl‹
  sW   € ØˆLå˜AœG AœJÑ'Ô'ð .ð .�Ø�Q”4˜1’9�9Ø  AÑ%�Làð .Ø˜} ˜}Ô-�Føà�1rX   r  r›  r  s     rV   Útest_parfor_slice27z$TestParforsSlice.test_parfor_slice27ˆ
  s5   € ð
	ð 
	ð 
	ð 	�
Š
�9�bœi¨™lœlÑ+Ô+Ð+Ð+Ð+rX   c           	      óz  ‡— t          ddd ¦  «        t          dd d ¦  «        t          d dd¦  «        t          d d d ¦  «        t          d d d¦  «        fD ]fŠˆfd„}d}|                      ||¦  «         t          j        |dz  ¦  «                             |df¦  «        }ˆfd	„}|                      ||¦  «         Œgd S )
Nrâ   r  ró   rI   ra  c                 óÐ   •— t          j        | dz  ¦  «                             | df¦  «        }d}t          j        | ¦  «        D ]!}|||‰f                              ¦   «         z  }Œ"|S ©Nr  r   )r¶   rþ  r  r    r   rx  )r÷   ro  rh  rû   Útss       €rV   r  zHTestParforsSlice.test_parfor_array_access_lower_slice.<locals>.test_impl�
  se   ø€ Ý”I˜a !™eÑ$Ô$×,Ò,¨a°¨VÑ4Ô4�Ø�Ýœ a™œð (ð (�AØ˜˜1˜b˜5œŸš™œÑ'�A�AØ�rX   r  r  c                 óŽ   •— d}t          j        | j        d         ¦  «        D ]!}|| |‰f                              ¦   «         z  }Œ"|S rË  )r    r   r‡  rx  )ro  rh  rû   r¥  s      €rV   r  zHTestParforsSlice.test_parfor_array_access_lower_slice.<locals>.test_impl©
  sH   ø€ Ø�Ýœ a¤g¨a¤jÑ1Ô1ð (ð (�AØ˜˜1˜b˜5œŸš™œÑ'�A�AØ�rX   )ÚslicerÚ   r¶   rþ  r  )rS   r  r÷   ro  r¥  s       @rV   Ú$test_parfor_array_access_lower_slicez5TestParforsSlice.test_parfor_array_access_lower_slice™
  sò   ø€ Ý˜˜A˜tÑ$Ô$¥e¨A¨t°TÑ&:Ô&:½EÀ$ÈÈ2Ñ<NÔ<NÝ˜˜t TÑ*Ô*­E°$¸¸bÑ,AÔ,AðCð 	%ð 	%ˆBðð ð ð ð ð ˆAØ�JŠJ�y !Ñ$Ô$Ð$å”	˜!˜a™%Ñ Ô ×(Ò(¨!¨Q¨Ñ0Ô0ˆAðð ð ð ð ð �JŠJ�y !Ñ$Ô$Ð$Ð$ð+	%ð 	%rX   N) rw   rN   rx   r3  r9  r=  rA  rD  rJ  rM  r=   rR  rV  rY  r^  rb  rf  rj  rm  rs  rw  rz  r}  r�  r‡  rŠ  r�  r”  r˜  rœ  r¡  r¨  r|   rX   rV   r,  r,  ˆ	  sè  € € € € € ð+ð +ð +ð=ð =ð =ð.ð .ð .ð.ð .ð .ð.ð .ð .ð.ð .ð .ð=ð =ð =ð ð;ð ;ñ „]ð;ð ð<ð <ñ „]ð<ð ð;ð ;ñ „]ð;ð>ð >ð >ð<ð <ð <ð<ð <ð <ð<ð <ð <ð<ð <ð <ð ð;ð ;ñ „]ð;ð/ð /ð /ðð ð ð+ð +ð +ð6ð 6ð 6ð&ð &ð &ð	&ð 	&ð 	&ð+ð +ð +ð6ð 6ð 6ð6ð 6ð 6ð,ð ,ð ,ð,ð ,ð ,ð"%ð %ð %ð %ð %rX   r,  c                   ó   — e Zd Zd„ ZdS )ÚTestParforsOptionsc                 ó´  — d„ }|                       |t          j        d¦  «        ¦  «         t          j        d d …         f}|                      t          ||¦  «        d¦  «         |                      t          ||d¬¦  «        d¦  «         |                      t          ||dd¬¦  «        d¦  «         |                      t          ||ddd¬	¦  «        d
¦  «         |                      t          ||dddd¬¦  «        d¦  «         |                      t          ||ddddd¬¦  «        d¦  «         |                      t          ||dddddd¬¦  «        d¦  «         d S )Nc                 ó$  — | j         d         }t          j        |¦  «        }t          j        d„ t	          |¦  «        D ¦   «         ¦  «        }| ||z  z   |d |…<   t          |¦  «        D ]}||         | |         z  ||<   Œt          d„ |d¦  «        S )Nr   c                 ó   — g | ]}|‘ŒS r|   r|   ©r¢   rû   s     rV   r¤   zMTestParforsOptions.test_parfor_options.<locals>.test_impl.<locals>.<listcomp>¹
  s   € Ð0Ð0Ð0 ˜1Ð0Ð0Ð0rX   c                 ó   — | |z   S rZ   r|   rÀ  s     rV   rä  zKTestParforsOptions.test_parfor_options.<locals>.test_impl.<locals>.<lambda>½
  s
   €  Q q¡S€ rX   )r‡  r¶   r  rˆ  rý   r   r   )r‡   r÷   rˆ   rì  rû   s        rV   r  z9TestParforsOptions.test_parfor_options.<locals>.test_impl¶
  s“   € Ø”˜”
ˆAÝ”˜‘
”
ˆAÝ”Ð0Ð0¥e¨A¡h¤hÐ0Ñ0Ô0Ñ1Ô1ˆAØ˜˜A™‘IˆAˆbˆqˆb‰EÝ˜A‘Y”Yð #ð #�Ø˜”t˜a œd‘{��!‘�Ý˜.˜.¨!¨QÑ/Ô/Ð/rX   r  râ   F)Úfusionr  )r°  Úcomprehensionr€   )r°  r±  Úsetitemr  )r°  r±  r²  r   r  )r°  r±  r²  r   Ú	reductionró   )r°  r±  r²  r   r³  rÝ  r   )rÚ   r¶   r  r    r’  rÆ   rä   rr  s      rV   Útest_parfor_optionsz&TestParforsOptions.test_parfor_optionsµ
  sÁ  € ð	0ð 	0ð 	0ð 	�
Š
�9�bœg b™kœkÑ*Ô*Ð*Ý”˜a˜a˜aÔ Ð"ˆà×Ò� i°Ñ6Ô6¸Ñ:Ô:Ð:à×Ò� i°¸eÐDÑDÔDÀaÑHÔHÐHà×Ò� i°¸eØ',ð.ñ .ô .Ø/0ñ	2ô 	2ð 	2ð 	×Ò� i°¸eØ',°eð=ñ =ô =Ø>?ñ	Aô 	Að 	Að 	×Ò� i°¸eØ',°eÀEðKñ Kô KØLMñ	Oô 	Oð 	Oð 	×Ò� i°¸eØ',°eÀEØ#(ð*ñ *ô *à+,ñ	.ô 	.ð 	.ð 	×Ò� i°¸eØ',°eÀEØ#(°ð7ñ 7ô 7à89ñ	;ô 	;ð 	;ð 	;ð 	;rX   N)rw   rN   rx   r´  r|   rX   rV   rª  rª  ²
  s#   € € € € € ð ;ð  ;ð  ;ð  ;ð  ;rX   rª  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestParforsBitMaskc                 ó^   — d„ }|                       |t          j        d¦  «        d¦  «         d S )Nc                 ó   — | |k    }d| |<   | S rË  r|   r1  s      rV   r  z:TestParforsBitMask.test_parfor_bitmask1.<locals>.test_implÜ
  s   € Ø�A’ˆAØˆAˆa‰DØˆHrX   r  r€   r›  r  s     rV   Útest_parfor_bitmask1z'TestParforsBitMask.test_parfor_bitmask1Û
  s7   € ð	ð 	ð 	ð
 	�
Š
�9�bœi¨™mœm¨QÑ/Ô/Ð/Ð/Ð/rX   c                 ón   — d„ }t          j        d¦  «        }|dk    }|                      |||¦  «         d S )Nc                 ó   — d| |<   | S rË  r|   r†   s     rV   r  z:TestParforsBitMask.test_parfor_bitmask2.<locals>.test_implä
  ó   € ØˆAˆa‰DØˆHrX   r  r€   r  rP  s       rV   Útest_parfor_bitmask2z'TestParforsBitMask.test_parfor_bitmask2ã
  óE   € ð	ð 	ð 	õ ŒI�b‰MŒMˆØ�ŠEˆØ�
Š
�9˜a Ñ#Ô#Ð#Ð#Ð#rX   c                 ón   — d„ }t          j        d¦  «        }|dk    }|                      |||¦  «         d S )Nc                 ó   — | |         | |<   | S rZ   r|   r†   s     rV   r  z:TestParforsBitMask.test_parfor_bitmask3.<locals>.test_implí
  s   € Ø�Q”4ˆAˆa‰DØˆHrX   r  r€   r  rP  s       rV   Útest_parfor_bitmask3z'TestParforsBitMask.test_parfor_bitmask3ì
  r¾  rX   c                 ón   — d„ }t          j        d¦  «        }|dk    }|                      |||¦  «         d S )Nc                 ó"   — d| z  |         | |<   | S rv  r|   r†   s     rV   r  z:TestParforsBitMask.test_parfor_bitmask4.<locals>.test_implö
  s   € Ø˜‘E˜1”:ˆAˆa‰DØˆHrX   r  r€   r  rP  s       rV   Útest_parfor_bitmask4z'TestParforsBitMask.test_parfor_bitmask4õ
  r¾  rX   c                 ón   — d„ }t          j        d¦  «        }|dk    }|                      |||¦  «         d S )Nc                 ó.   — | |         | |         z  | |<   | S rZ   r|   r†   s     rV   r  z:TestParforsBitMask.test_parfor_bitmask5.<locals>.test_implÿ
  s   € Ø�Q”4˜!˜Aœ$‘;ˆAˆa‰DØˆHrX   r  r€   r  rP  s       rV   Útest_parfor_bitmask5z'TestParforsBitMask.test_parfor_bitmask5þ
  r¾  rX   c                 óf  — d„ }t          j        d¦  «        }|dk    }t          j        t          |¦  «        ¦  «        }|                      t
          ¦  «        5 }|                      ||||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j	        ¦  «        ¦  «         d S )Nc                 ó   — || |<   | S rZ   r|   rI  s      rV   r  z:TestParforsBitMask.test_parfor_bitmask6.<locals>.test_impl  r¼  rX   r  r€   r  )
r¶   rþ  r;  rx  r  r	  rÚ   rê   r  r
  )rS   r  r‡   rˆ   rì  r  s         rV   Útest_parfor_bitmask6z'TestParforsBitMask.test_parfor_bitmask6  sä   € ð	ð 	ð 	õ ŒI�b‰MŒMˆØ�ŠEˆÝŒH•S˜‘V”VÑÔˆð ×Ò�~Ñ.Ô.ð 	+°&Ø�JŠJ�y ! Q¨Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+à�ŠÐ4µc¸&Ô:JÑ6KÔ6KÑLÔLÐLÐLÐLs   ÁA>Á>BÂBN)	rw   rN   rx   r¹  r½  rÁ  rÄ  rÇ  rÊ  r|   rX   rV   r¶  r¶  Ø
  ss   € € € € € ð0ð 0ð 0ð$ð $ð $ð$ð $ð $ð$ð $ð $ð$ð $ð $ðMð Mð Mð Mð MrX   r¶  c                   óÎ   — 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ed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestParforsMiscz?
    Tests miscellaneous parts of ParallelAccelerator use.
    c                 ó
  — d„ } t          dd¬¦  «        |¦  «        }t          j        d¬¦  «        5 }t          j        d¦  «         t          j        dd¬¦  «         t          j        dd	t
          j        j        d
¬¦  «          |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      t          |¦  «        d¦  «         d„ |j
                             ¦   «         D ¦   «         }|                      |dg¦  «         d S )Nc                  ó|   — t          j        d¦  «        } t          | j        ¦  «        D ]}| |xx         |z  cc<   Œ| S rö  )r¶   r  r   rá  )r½  rû   s     rV   r§   z9TestParforsMisc.test_no_warn_if_cache_set.<locals>.pyfunc  sD   € Ý”'˜#‘,”,ˆCÝ˜CœHÑ%Ô%ð ð �Ø�A��”˜!‘��‘�ØˆJrX   T)r”   Úcache©ÚrecordÚalwaysÚignoreÚ	typeguard)ÚactionÚmodulez.*TBB_INTERFACE_VERSION.*znumba\.np\.ufunc\.parallel.*)rÕ  ÚmessageÚcategoryrÖ  r   c                 ó&   — g | ]}|j         j        ‘ŒS r|   )rë   Úhas_dynamic_globals)r¢   rí   s     rV   r¤   z=TestParforsMisc.test_no_warn_if_cache_set.<locals>.<listcomp>3  s3   € ð Eð Eð EØ#'ð  $œ|Ô?ð Eð Eð ErX   F)r   ÚwarningsÚcatch_warningsÚsimplefilterÚfilterwarningsr    r   ÚNumbaWarningrÆ   rÈ   r�   rØ  )rS   r§   r«   Úraised_warningsrÚ  s        rV   Útest_no_warn_if_cache_setz)TestParforsMisc.test_no_warn_if_cache_set  ss  € ð	ð 	ð 	ð 0•˜d¨$Ð/Ñ/Ô/°Ñ7Ô7ˆåÔ$¨DÐ1Ñ1Ô1ð 		°_ÝÔ! (Ñ+Ô+Ð+ÝÔ#¨8Ø+6ð8ñ 8ô 8ð 8õ Ô#¨8Ø,HÝ-2¬\Ô-FØ+JðLñ Lô Lð Lð ˆE‰GŒGˆGð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 	×Ò�˜_Ñ-Ô-¨qÑ1Ô1Ð1ðEð EØ+0¬?×+AÒ+AÑ+CÔ+CðEñ Eô EÐà×ÒÐ,¨u¨gÑ6Ô6Ð6Ð6Ð6s   ³ABÂBÂ"Bc                 ó*  — d„ }|                       |d¦  «        }t          ¦   «         5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «                              ¦   «         D ]}|                      d|¦  «         Œd S )Nc                  óº   — t          j        d¦  «        } t          j        dd¦  «        | dd…<   t          d| d         ¦  «         t          d| d         ¦  «         | S )Nr  r   r_  râ   rq  za[3]:r  )r¶   r;  rþ  Úprintr|  s    rV   rÞ   zITestParforsMisc.test_statement_reordering_respects_aliasing.<locals>.impl8  sS   € Ý”˜‘”ˆAÝ”Y˜q !‘_”_ˆAˆa�ˆc‰FÝ�'˜1˜Qœ4Ñ Ô Ð Ý�'˜1˜Qœ4Ñ Ô Ð ØˆHrX   r|   z	a[3]: 2.0)r—   r4   rÃ   Úgetvaluer9  rÆ   )rS   rÞ   rí   ÚstdoutÚlines        rV   Ú+test_statement_reordering_respects_aliasingz;TestParforsMisc.test_statement_reordering_respects_aliasing7  sà   € ð	ð 	ð 	ð ×$Ò$ T¨2Ñ.Ô.ˆÝÑÔð 	 &Ø×ÒÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à—O’OÑ%Ô%×0Ò0Ñ2Ô2ð 	0ð 	0ˆDØ×Ò˜[¨$Ñ/Ô/Ð/Ð/ð	0ð 	0s   ¨A	Á	AÁAc                 óž  — d„ }t          j        t           j        dg¦  «        } t          d¬¦  «        |¦  «        }t          j        j        j        }	 dt          j        j        _        t           j         	                     ||¦  «         ||¦  «        ¦  «         |t          j        j        _        d S # |t          j        j        _        w xY w)Nc                 ó*   — t          j        | ¦  «        S rZ   )r¶   ÚisinfrÞ  s    rV   r  z;TestParforsMisc.test_parfor_ufunc_typing.<locals>.test_implF  s   € Ý”8˜A‘;”;ÐrX   rý  Tr“   )
r¶   rˆ  r  r   r    r©  rª  Úsequential_parfor_loweringrÄ   Úassert_array_equal)rS   r  rz  r«   Úold_seq_flags        rV   Útest_parfor_ufunc_typingz(TestParforsMisc.test_parfor_ufunc_typingE  s¹   € ð	ð 	ð 	õ ŒH•b”f˜c�]Ñ#Ô#ˆØ#•˜dÐ#Ñ#Ô# IÑ.Ô.ˆå”}Ô+ÔFˆð	KØ>B�EŒMÔ Ô;ÝŒJ×)Ò)¨)¨)°A©,¬,¸¸¸a¹¼ÑAÔAÐAð ?K�EŒMÔ Ô;Ð;Ð;ø¸l�EŒMÔ Ô;ÐJÐJÐJÐJs   ÁAB4 Â4Cc                 óT   — d„ }|                       t          |d¦  «        d¦  «         d S )Nc                  ó²   — d} g d¢}t           j        j                             ¦   «          |}t          j        d¦  «        D ]}| ||         z  } Œ| |d         z   S )Nr   rž  r€   ró   )r    r©  rª  Úinit_pranger   )Úresr½  Údummyrû   s       rV   r  z6TestParforsMisc.test_init_block_dce.<locals>.test_implV  s`   € ØˆCØ�+�+ˆCÝŒMÔ ×,Ò,Ñ.Ô.Ð.ØˆEÝ”\ !‘_”_ð ð �Ø�s˜1”v‘��Ø˜˜qœ‘>Ð!rX   r|   r   )rÆ   rÍ  r  s     rV   Útest_init_block_dcez#TestParforsMisc.test_init_block_dceT  s:   € ð	"ð 	"ð 	"ð 	×ÒÕ,¨Y¸Ñ;Ô;¸QÑ?Ô?Ð?Ð?Ð?rX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ób   — d} t          d¦  «        D ]}| dz  } Œt          j        | f¦  «        }|S )Nr   r  râ   ©rý   r¶   r;  )r°  rJ   r1  s      rV   r  zBTestParforsMisc.test_alias_analysis_for_parfor1.<locals>.test_implb  s=   € ØˆCÝ˜1‘X”Xð ð �Ø�q‘��å”8˜S˜FÑ#Ô#ˆDØˆKrX   r  r  s     rV   Útest_alias_analysis_for_parfor1z/TestParforsMisc.test_alias_analysis_for_parfor1a  s+   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐÐÐrX   c                 ó:  ‡‡— dŠt          dd¬¦  «         G ˆfd„dt          ¦  «        ¦   «         Š G ˆfd„dt          ¦  «        }t          d|¬	¦  «        d
„ ¦   «         }|                      t
          j        j        j        ¦  «         |  	                    t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      ‰t          |j        ¦  «        ¦  «         |                      t
          j        j        j        ¦  «         d S )NÚ
BROKEN_MSGTF)Úmutates_CFGÚanalysis_onlyc                   ó$   •— e Zd ZdZd„ Zˆ fd„ZdS )úVTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParforsÚbreak_parforsc                 ó.   — t          j        | ¦  «         d S rZ   )r1   rö  r\   s    rV   rö  z_TestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParfors.__init__w  s   € ÝÔ% dÑ+Ô+Ð+Ð+Ð+rX   c                 óò   •— |j         j                             ¦   «         D ]V}|j        D ]J}t	          |t
          j        j        j        ¦  «        r$ G ˆfd„dt          ¦  «        } |¦   «         |_
        ŒK dS d S )Nc                   ó   •— e Zd Zˆ fd„ZdS )úoTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParfors.run_pass.<locals>.Brokenc                 ó,   •— t          j        ‰¦  «        ‚rZ   )r   ÚLoweringError)rS   Úotherrû  s     €rV   Ú
differencezzTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParfors.run_pass.<locals>.Broken.difference†  s   ø€ Ý*0Ô*>¸zÑ*JÔ*JÐ$JrX   N)rw   rN   rx   r  ©rû  s   €rV   ÚBrokenr  „  s5   ø€ € € € € ð!Kð !Kð !Kð !Kð !Kð !Kð !KrX   r
  T)r�  r³  rØ  rÁ  rµ   r    r©  rª  rÂ  r¾   Úraces)rS   r   Úblkré  r
  rû  s        €rV   Úrun_passz_TestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParfors.run_passz  s­   ø€ Ø œ=Ô/×6Ò6Ñ8Ô8ð  ð  �CØ #¤ð 2ð 2˜Ý% d­E¬MÔ,@Ô,GÑHÔHð 2ðKð Kð Kð Kð Kð Kð K­ñ Kô Kð Kð
 *0¨©¬˜DœJøØ˜4˜4ð ð  rX   N)rw   rN   rx   Ú_namerö  r  r	  s   €rV   ÚBreakParforsrÿ  s  sB   ø€ € € € € à#ˆEð,ð ,ð ,ð ð  ð  ð  ð  ð  ð  rX   r  c                   ó   •— e Zd Zˆ fd„ZdS )ú^TestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParforsCompilerc                 óš   •— t          j        | j        ¦  «        }|                     ‰t          ¦  «         |                     ¦   «          |gS rZ   )r/   Údefine_nopython_pipeliner   Úadd_pass_afterr2   Úfinalize)rS   Úpmr  s     €rV   Údefine_pipelineszoTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.BreakParforsCompiler.define_pipelines�  s?   ø€ Ý'Ô@ÀÄÑLÔL�Ø×!Ò! ,µÑ?Ô?Ð?Ø—’‘”�Ø�t�rX   N)rw   rN   rx   r  )r  s   €rV   ÚBreakParforsCompilerr  �  s.   ø€ € € € € ðð ð ð ð ð ð rX   r  )r”   Úpipeline_classc                  ó8   — d} t          d¦  «        D ]}| dz  } Œ| S r  r¹  )r£   rJ   s     rV   ÚfoozMTestParforsMisc.test_no_state_change_in_gufunc_lowering_on_error.<locals>.foo–  s,   € àˆAÝ˜A‘Y”Yð ð �Ø�Q‘��ØˆHrX   )r0   r1   r.   r   ÚassertFalser    r©  rª  rì  r  r   r  rê   r  r
  )rS   r  r  r  rû  r  s       @@rV   Ú0test_no_state_change_in_gufunc_lowering_on_errorz@TestParforsMisc.test_no_state_change_in_gufunc_lowering_on_errorl  s�  øø€ ð
 "ˆ
å	 4°uÐ	=Ñ	=Ô	=ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 �<ñ 	 ô 	 ñ 
>Ô	=ð	 ð2	ð 	ð 	ð 	ð 	ð 	ð 	¥<ñ 	ô 	ð 	õ 
�tÐ,@Ð	AÑ	AÔ	Að	ð 	ñ 
BÔ	Að	ð 	×Ò�œÔ-ÔHÑIÔIÐIà×Ò�vÔ3Ñ4Ô4ð 	¸ØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š�j¥# fÔ&6Ñ"7Ô"7Ñ8Ô8Ð8ð 	×Ò�œÔ-ÔHÑIÔIÐIÐIÐIs   Â(B?Â?CÃCc                 óØ  ‡‡	—  G d„ dt           j        ¦  «        } |d¦  «        Š	 t          |¦  «        t          j        ¦  «          G d„ dt
          ¦  «        }t          j        |¦  «        ˆ	fd„¦   «         }t          |¦  «        d„ ¦   «         }t          |dd	d
i¬¦  «        d„ ¦   «         }t          d„ ¦   «         Št          ˆfd„¦   «         }t          j        j        j        }|                      |¦  «         	  | |¦   «         ¦  «         |                      t          j        j        j        ¦  «         |t          j        j        _        d S # |t          j        j        _        w xY w)Nc                   ó   — e Zd ZdS )ú2TestParforsMisc.test_issue_5098.<locals>.DummyTypeN©rw   rN   rx   r|   rX   rV   Ú	DummyTyper   ©  ó   € € € € € ØˆDrX   r"  Úmy_dummyc                   ó   — e Zd ZdS )ú.TestParforsMisc.test_issue_5098.<locals>.DummyNr!  r|   rX   rV   ÚDummyr&  ¯  r#  rX   r'  c                 ó   •— ‰S rZ   r|   )Úvalrì  Ú
dummy_types     €rV   Útypeof_Dummyz5TestParforsMisc.test_issue_5098.<locals>.typeof_Dummy²  s	   ø€ àÐrX   c                 óN   — t          |j                             ¦   «         ¦  «        S rZ   )r"   ÚcontextÚget_dummy_value)ÚtypÚobjrì  s      rV   Úunbox_indexz4TestParforsMisc.test_issue_5098.<locals>.unbox_index¶  s   € å˜qœy×8Ò8Ñ:Ô:Ñ;Ô;Ð;rX   Úmethod1r”   T)Újit_optionsc                 ó   — d„ }|S )Nc                 ó"  — d„ }t          |¦  «        }t          j        |t          j        ¬¦  «        }t	          |¦  «        D ]} |||         |¦  «        ||<   Œt	          |dz
  ¦  «        D ]"}||xx          |||         |¦  «        z  cc<   Œ#|S )Nc                 ó‚   — |                       ¦   «         }t          j        |t          j        | ¦  «        <    ||¦  «        S rZ   )r¹   r¶   r)  rë  )r‡   Úfrì  s      rV   ÚbazzPTestParforsMisc.test_issue_5098.<locals>._get_method1.<locals>._foo.<locals>.baz½  s/   € ØŸš™œ�AÝ%'¤V�A•b”h˜q‘k”k‘NØ˜1˜Q™4œ4�KrX   r"  râ   rÌ  )r0  r½  rŽ   r8  ÚlengthÚ
output_arrrû   s          rV   Ú_foozCTestParforsMisc.test_issue_5098.<locals>._get_method1.<locals>._foo¼  s­   € ð ð  ð  õ
 ˜S™œ�ÝœX fµB´JÐ?Ñ?Ô?�
Ý ™œð 6ð 6�AØ$' C¨¨A¬°Ñ$5Ô$5�J˜q‘M�MÝ ¨¡
Ñ+Ô+ð 7ð 7�AØ˜q�M�M”M S S¨¨Q¬°Ñ%6Ô%6Ñ6�M�M‘M�MØ!Ð!rX   r|   )r0  r½  rŽ   r;  s       rV   Ú_get_method1z5TestParforsMisc.test_issue_5098.<locals>._get_method1º  s   € ð"ð "ð "ð ˆKrX   c                 ó*   — |                       ¦   «         S rZ   rÜ  )rí  s    rV   Úbarz,TestParforsMisc.test_issue_5098.<locals>.barË  s   € à—6’6‘8”8ˆOrX   c                 ó`   •— |                       t          j        g d¢g d¢g¦  «        ‰¦  «        S )N©rW  r&  rü  )rý  rL  rM  )r2  r¶   rˆ  )rÏ  r>  s    €rV   Útest1z.TestParforsMisc.test_issue_5098.<locals>.test1Ï  s.   ø€ à—9’9�RœX   ¸¸¸Ð&HÑIÔIÈ3ÑOÔOÐOrX   )r   ÚOpaquer   r#   ÚOpaqueModelÚobjectr    Úregisterr!   r   r   r    r©  rª  rì  r  )
rS   r"  r'  r+  r1  r<  rA  Ú
save_stater>  r*  s
           @@rV   Útest_issue_5098zTestParforsMisc.test_issue_5098¨  sØ  øø€ ð	ð 	ð 	ð 	ð 	�œñ 	ô 	ð 	ð �Y˜zÑ*Ô*ˆ
Ø!��yÑ!Ô!¥&Ô"4Ñ5Ô5Ð5ð	ð 	ð 	ð 	ð 	•Fñ 	ô 	ð 	õ 
Ô	˜eÑ	$Ô	$ð	ð 	ð 	ð 	ñ 
%Ô	$ð	õ 
ˆyÑ	Ô	ð	<ð 	<ñ 
Ô	ð	<õ 
˜ I¸JÀtÐ;LÐ	MÑ	MÔ	Mð	ð 	ñ 
NÔ	Mð	õ  
ð	ð 	ñ 
Œð	õ 
ð	Pð 	Pð 	Pð 	Pñ 
Œð	Põ ”]Ô)ÔDˆ
Ø×Ò˜Ñ$Ô$Ð$ð	IØˆE�%�%‘'”'‰NŒNˆNØ×Ò�Uœ]Ô1ÔLÑMÔMÐMð ?I�EŒMÔ Ô;Ð;Ð;ø¸j�EŒMÔ Ô;ÐHÐHÐHÐHs   Ã=<E ÅE)c                 óŒ  — t          d¬¦  «        d„ ¦   «         }t          dd¦  «        5  |                      t          j        ¦  «        5 } |d¦  «         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 S )	NTr“   c                 óH   — d}d}t          d¦  «        D ]}|||          z  }Œ|S )N)râ   ró   r  r  r   r  r¹  )r›  Úbig_tuprI  r£   s       rV   Úoversize_tuplezMTestParforsMisc.test_oversized_tuple_as_arg_to_kernel.<locals>.oversize_tupleß  s6   € àˆGØˆAÝ˜B‘Z”Zð "ð "�Ø�W˜S”\Ñ!��ØˆHrX   ÚNUMBA_PARFOR_MAX_TUPLE_SIZEÚ3r   zUse of a tuplezin a parallel region)r   r6   r  r   rl  r  r
  rê   )rS   rK  r  Úerrstrs       rV   Ú%test_oversized_tuple_as_arg_to_kernelz5TestParforsMisc.test_oversized_tuple_as_arg_to_kernelÝ  sJ  € å	�tÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ !Ð!>ÀÑDÔDð 	"ð 	"Ø×"Ò"¥6Ô#AÑBÔBð "ÀfØ�˜qÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ �VÔ%Ñ&Ô&ˆØ�ŠÐ&¨Ñ/Ô/Ð/Ø�ŠÐ,¨fÑ5Ô5Ð5Ð5Ð5s5   ª A9Á
A"ÁA9Á"A&	Á&A9Á)A&	Á*A9Á9A=Â A=c                 óÆ   — d„ }d}t           j                             dd|¬¦  «        }t           j                             dd|¬¦  «        }|                      |||¦  «         d S )Nc                 ó  — d}t          j        | j        || j        ¬¦  «        }| j        }t	          |d         ¦  «        D ]J}t	          |d         ¦  «        D ]2}| ||f         |||f         z
  | ||f         |||f         z   z  |||f<   Œ3ŒK|S ©Nr   r"  râ   )r¶   Úfullr‡  r#  r   )Úimg_nirÚimg_redÚ	fillvalueÚout_imgÚdimsrh  r£   s          rV   Ú	ndvi_njitz1TestParforsMisc.test_issue5167.<locals>.ndvi_njitñ  s­   € ØˆIÝ”g˜gœm¨Y¸g¼mÐLÑLÔLˆGØ”=ˆDÝ˜D œG‘_”_ð Fð F�Ý  Q¤™œð Fð F�AØ&-¨a°¨d¤m°g¸aÀ¸d´mÑ&CØ&-¨a°¨d¤m°g¸aÀ¸d´mÑ&Cñ&E�G˜A˜q˜D‘M�MðFð ˆNrX   )r  r  rW  g     ˆÃ@)Úlowrþ  rá  )r¶   r‰  ÚuniformrÚ   )rS   rY  Ú
tile_shapeÚarray1Úarray2s        rV   Útest_issue5167zTestParforsMisc.test_issue5167ï  sl   € ð	ð 	ð 	ð ˆ
Ý”×"Ò" s°¸zÐ"ÑJÔJˆÝ”×"Ò" s°¸zÐ"ÑJÔJˆØ�
Š
�9˜f fÑ-Ô-Ð-Ð-Ð-rX   c                 óV  — d„ }t           d„ ¦   «         }t          j                             d¬¦  «        }  t          d¬¦  «        |¦  «        |                     ¦   «         |d¦  «        } ||                     ¦   «         |d¦  «        }t          j                             ||¦  «         d S )Nc                 ó:  — t          j        | j        d         | j        d         ft           j        ¬¦  «        }t	          | j        d         ¦  «        D ]G}t          |dz   | j        d         ¦  «        D ]&} || |         | |         g|¢R Ž }||||f<   ||||f<   Œ'ŒH|S rR  )r¶   r;  r‡  rÎ  r   rý   )r‡   r�  Ú	dist_argsr	  rû   ry  rÏ  s          rV   Ú
reproducerz2TestParforsMisc.test_issue5065.<locals>.reproducer  s²   € Ý”X˜qœw qœz¨1¬7°1¬:Ð6½b¼jÐIÑIÔIˆFÝ˜AœG AœJÑ'Ô'ð %ð %�Ý˜q 1™u a¤g¨a¤jÑ1Ô1ð %ð %�AØ˜˜Q˜qœT 1 Q¤4Ð4¨)Ð4Ð4Ð4�AØ#$�F˜1˜a˜4‘LØ#$�F˜1˜a˜4‘L�Lð%ð ˆMrX   c                 ó–   — d}t          | j        d         ¦  «        D ]}|| |         ||         z
  dz  z  }Œt          j        |¦  «        S )Nrý  r   ró   )rý   r‡  r¶   rY  )r£   rh  r	  rû   s       rV   Ú	euclideanz1TestParforsMisc.test_issue5065.<locals>.euclidean  sO   € àˆFÝ˜1œ7 1œ:Ñ&Ô&ð -ð -�Ø˜1˜Qœ4 ! A¤$™;¨1Ñ,Ñ,��Ý”7˜6‘?”?Ð"rX   )r€   ró   rà  Tr“   r|   )r   r¶   r‰  r¹   rÄ   r  )rS   rc  re  r‡   r‰  rŠ  s         rV   Útest_issue5065zTestParforsMisc.test_issue5065   s°   € ð	ð 	ð 	õ 
ð	#ð 	#ñ 
Œð	#õ ŒI×Ò &ÐÑ)Ô)ˆà-Ð!�d˜DÐ!Ñ!Ô! *Ñ-Ô-¨a¯fªf©h¬h¸	À"ÑEÔEˆØ�:˜aŸfšf™hœh¨	°"Ñ5Ô5ˆå
Œ
×"Ò" 3¨Ñ1Ô1Ð1Ð1Ð1rX   c                 óˆ   — d„ }t          j        d¦  «        t          j        d¦  «        f}|                      ||¦  «         d S )Nc                 óš   — dgt          | ¦  «        z  }t          t          | ¦  «        ¦  «        D ]}t          | |         ¦  «        ||<   Œ|S rË  )rÈ   r   )Úmyarrayr	  rû   s      rV   Útest_numba_parallelz;TestParforsMisc.test_issue5001.<locals>.test_numba_parallel  sK   € Ø�S�3˜w™<œ<Ñ'ˆFÝ�C ™LœLÑ)Ô)ð ,ð ,�Ý ¨¤
™OœO��q‘	�	ØˆMrX   rß  é2   )r¶   rÜ  rÚ   )rS   rj  ri  s      rV   Útest_issue5001zTestParforsMisc.test_issue5001  sH   € ð	ð 	ð 	õ ”8˜C‘=”=¥¤¨"¡¤Ð.ˆØ�
Š
Ð&¨Ñ0Ô0Ð0Ð0Ð0rX   c                 ó~   ‡— t           d„ ¦   «         Št          d¬¦  «        ˆfd„¦   «         } |dgfdz  ¦  «         d S )Nc                 ó   — d S rZ   r|   )Úgridss    rV   r  z+TestParforsMisc.test_issue3169.<locals>.foo&  ó   € àˆDrX   Tr“   c                 óB   •— t          d¦  «        D ]} ‰| ¦  «         Œd S r  r¹  )ro  r£   r  s     €rV   r>  z+TestParforsMisc.test_issue3169.<locals>.bar*  s1   ø€ å˜A‘Y”Yð ð �Ø��E‘
”
�
�
ðð rX   râ   ró   rŒ  )rS   r>  r  s     @rV   Útest_issue3169zTestParforsMisc.test_issue3169$  sh   ø€ å	ð	ð 	ñ 
Œð	õ 
�tÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	ð
 	ˆˆaˆSˆF�Q‰J‰ŒˆˆˆrX   c                 óª   ‡— t          dd¦  «        }ˆfd„}t          d¬¦  «        d„ ¦   «         Š |dd¬¦  «        }|                      ||¦  «         d S )	NÚmytyper†   c                 óN   •— t          d¦  «        D ]} ‰|| ¦  «         Œ| j        S ru  )r   r‡   )Úmydatar´   Úinners     €rV   Úouterz-TestParforsMisc.test_issue4846.<locals>.outer7  s4   ø€ Ý˜A‘Y”Yð !ð !�Ø��a˜Ñ Ô Ð Ð Ø”8ˆOrX   T)Únogilc                 ó*   — | |j         f}| |j        f}d S rZ   r†   )r´   rv  r7  rŸ  s       rV   rw  z-TestParforsMisc.test_issue4846.<locals>.inner<  s   € à�F”H�ˆAØ�F”H�ˆAˆAˆArX   r‡   rˆ   )r   r   rÚ   )rS   rt  rx  rv  rw  s       @rV   Útest_issue4846zTestParforsMisc.test_issue48462  s„   ø€ õ ˜H jÑ1Ô1ˆð	ð 	ð 	ð 	ð 	õ
 
�DÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	ð �˜# Ð%Ñ%Ô%ˆà�
Š
�5˜&Ñ!Ô!Ð!Ð!Ð!rX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ób   — d} d}t          t          | ¦  «        ¦  «        D ]}|| |         z  }Œ|S )Nrž  r   ©r   rÈ   )r£   r‡   rû   s      rV   Útest1bz.TestParforsMisc.test_issue3748.<locals>.test1bG  s;   € ØˆAØˆAÝ�C ™FœF‘^”^ð ð �Ø�Q�q”T‘	��ØˆHrX   r  )rS   r  s     rV   Útest_issue3748zTestParforsMisc.test_issue3748E  s+   € ð	ð 	ð 	ð 	�
Š
�6ÑÔÐÐÐrX   c                 ót   — d„ }d}t          j        |t          ¬¦  «        }|                      |||¦  «         d S )Nc                 óˆ   — t          | d         ¦  «        D ]+}t          | d         ¦  «        D ]}|dz  |z   ||         |<   ŒŒ,|S )Nr   râ   g      @r¹  )rá  r½  r£   rh  s       rV   Úparallel_testz5TestParforsMisc.test_issue5277.<locals>.parallel_testR  sU   € Ý˜D œG‘_”_ð ,ð ,�Ý  Q¤™œð ,ð ,�AØ ! C¡¨!¡�C˜”F˜1‘I�Ið,àˆJrX   r5  r"  )r¶   r;  rø  rÚ   )rS   rƒ  rá  r½  s       rV   Útest_issue5277zTestParforsMisc.test_issue5277P  sH   € ð	ð 	ð 	ð ˆÝŒh�t¥3Ð'Ñ'Ô'ˆà�
Š
�= $¨Ñ,Ô,Ð,Ð,Ð,rX   c                 óø   — t          d¬¦  «        d„ ¦   «         }t          j        d¦  «        }d}t          j        d¦  «        }|                       ||||¦  «        |                     |||¦  «        ¦  «         d S )NTr“   c                 ój   — t          d¦  «        D ]}t          d¦  «        D ]	}d|||f<   Œ
Œ|r|dz  }|S r  ©r   rý   )rü   ÚmethodrÝ  rû   ry  s        rV   r  z5TestParforsMisc.test_issue5570_ssa_races.<locals>.foo^  sV   € å˜A‘Y”Yð "ð "�Ý˜q™œð "ð "�AØ !�C˜˜1˜‘I�Ið"àð Ø�q‘�ØˆJrX   )r€   r€   é9   r@  )r   r¶   r;  r…  rÿ  )rS   r  rü   rˆ  rÝ  s        rV   Útest_issue5570_ssa_racesz(TestParforsMisc.test_issue5570_ssa_races]  s�   € Ý	�tÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ Œh�u‰oŒoˆØˆÝŒh�vÑÔˆà×ÒØˆC��V˜SÑ!Ô!Ø�KŠK˜˜V SÑ)Ô)ñ	
ô 	
ð 	
ð 	
ð 	
rX   c                 ó  — t          d¬¦  «        d„ ¦   «         }t          j                             d¦  «         t          j                             d¦  «        }|                       ||¦  «        |                     |¦  «        ¦  «         d S )NTr“   c                 ór   — | }t          dd¦  «        D ]}||d d …d d …f         }Œt          j        |¦  «        S )Nr   r  )rý   r¶   r®  )r¨   Úpackagerï  Úz_stacks       rV   Úfind_maxima_3D_jitzDTestParforsMisc.test_issue6095_numpy_max.<locals>.find_maxima_3D_jitq  sF   € àˆGÝ˜q "™œð /ð /�Ø! %¨¨¨¨A¨A¨A +Ô.��Ý”6˜'‘?”?Ð"rX   r   )r  r  r  )r   r¶   r‰  r›  r…  rÿ  )rS   r�  r¨   s      rV   Útest_issue6095_numpy_maxz(TestParforsMisc.test_issue6095_numpy_maxp  s“   € Ý	�tÐ	Ñ	Ô	ð	#ð 	#ñ 
Ô	ð	#õ 	Œ	�Š�qÑÔÐÝŒy×Ò Ñ-Ô-ˆØ×ÒØÐ˜tÑ$Ô$Ø×&Ò& tÑ,Ô,ñ	
ô 	
ð 	
ð 	
ð 	
rX   c                 óÊ   — d„ }d}d}t          j        ||ft           j        ¬¦  «        }t          j        ||ft           j        ¬¦  «        }|                      |||¦  «         d S )Nc                 ó’   — | j         }|d         }t          |¦  «        D ]'}| |d d …f         ||d d …f<   ||dfxx         dz  cc<   Œ(|S r¿  )r‡  r   )ÚggÚgg_nextÚgsrÏ  Úi_ggs        rV   r  z3TestParforsMisc.test_issue5942_1.<locals>.test_impl‚  sm   € Ø”ˆBØ�1”ˆAÝ˜q™	œ	ð &ð &�Ø$& t¨Q¨Q¨Q w¤K�˜˜a˜a˜a˜Ñ Ø˜˜a˜Ð Ð Ô  AÑ%Ð Ð Ñ Ð àˆNrX   r  ró   r"  )r¶   r;  r  rÚ   )rS   r  rÏ  r´   r“  r”  s         rV   Útest_issue5942_1z TestParforsMisc.test_issue5942_1  sm   € ð	ð 	ð 	ð ˆØˆå”(˜A˜q˜6­2¬8Ð4Ñ4Ô4ˆÝ”(˜A˜q˜6­2¬8Ð4Ñ4Ô4ˆØ�
Š
�9˜b 'Ñ*Ô*Ð*Ð*Ð*rX   c                 óB   — d„ }d}d}|                       |||¦  «         d S )Nc                 ó.  — t          j        | |ft           j        ¬¦  «        }t          j        | |ft           j        ¬¦  «        }t          | ¦  «        D ]@}t	          |¦  «        D ]	}||||f<   Œ
||d d …f         ||d d …f<   ||dfxx         dz  cc<   ŒA|S )Nr"  r   râ   )r¶   r;  r  r   rý   )rÏ  r´   r“  r”  r–  r÷   s         rV   r  z3TestParforsMisc.test_issue5942_2.<locals>.test_impl”  sµ   € Ý”h  1˜v­r¬xÐ8Ñ8Ô8ˆBÝ”h  1˜v­r¬xÐ8Ñ8Ô8ˆGå˜q™	œ	ð &ð &�Ý˜q™œð 'ð '�AØ"&�B�t˜Q�w‘K�KØ$& t¨Q¨Q¨Q w¤K�˜˜a˜a˜a˜Ñ Ø˜˜a˜Ð Ð Ô  AÑ%Ð Ð Ñ Ð àˆNrX   r  ró   r  )rS   r  rÏ  r´   s       rV   Útest_issue5942_2z TestParforsMisc.test_issue5942_2’  s9   € ð
	ð 
	ð 
	ð ˆØˆà�
Š
�9˜a Ñ#Ô#Ð#Ð#Ð#rX   c                 óÐ   — t          d¬¦  «        d„ ¦   «         }t          j        g d¢g d¢g¦  «        }|                       ||¦  «        |                     |¦  «        ¦  «         d S )NTr“   c                 ó|  — t          | j        d         ¦  «        D ] }t          j        }t          j        g d¢t          j        ¬¦  «        }dD ]Y}t          j                             | |d d …f         |z   ¦  «        }||k     r%|}t          j        |||gt          j        ¬¦  «        }ŒZ| |d d …fxx         |z  cc<   Œ¡| S )Nr   )r   r   r   r"  )râ   r   rI   )r   r‡  r¶   r  rˆ  rÎ  rT  Únorm)rë  r   r�  Útrrû   Údist_ts         rV   r7  z)TestParforsMisc.test_issue6102.<locals>.f©  sÃ   € å˜QœW QœZÑ(Ô(ð ð �Ý”v�Ý”X˜i˜i˜i­r¬zÐ:Ñ:Ô:�Ø#ð Cð C�AÝœYŸ^š^¨A¨b°!°!°!¨e¬H°q©LÑ9Ô9�FØ ’}�}Ø%˜ÝœX q¨!¨Q iµr´zÐBÑBÔB˜øØ�"�a�a�a�%��”˜B‘��‘�ØˆHrX   )rý  rý  rý  )rý  rý  rW  )r   r¶   rˆ  r…  rÿ  )rS   r7  rë  s      rV   Útest_issue6102zTestParforsMisc.test_issue6102¥  su   € õ 
�tÐ	Ñ	Ô	ð
	ð 
	ñ 
Ô	ð
	õ ŒH�l�l�l L L LÐ1Ñ2Ô2ˆØ×Ò   !¡¤ a§i¢i°¡l¤lÑ3Ô3Ð3Ð3Ð3rX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  óæ   — d} t          j        | f¦  «        }t          j        | dz
  f¦  «        }t          t	          |¦  «        ¦  «        D ]$}t          j        |||dz   …         ¦  «        ||<   Œ%|S r‘  )r¶   r  rÜ  r   rÈ   rx  )r÷   Úna_maskr	  rû   s       rV   r  z1TestParforsMisc.test_issue6774.<locals>.test_impl»  so   € ØˆAÝ”g˜q˜d‘m”mˆGÝ”X˜q 1™u˜hÑ'Ô'ˆFÝ�C ™KœKÑ(Ô(ð 5ð 5�ÝœF 7¨1¨Q°©U¨7Ô#3Ñ4Ô4��q‘	�	ØˆMrX   r  r  s     rV   Útest_issue6774zTestParforsMisc.test_issue6774¹  s+   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐÐÐrX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  óF   — t          j        t          t          f¦  «        } | S rZ   )r¶   r;  Ú_GLOBAL_INT_FOR_TESTING1Ú_GLOBAL_INT_FOR_TESTING2)Úbufs    rV   r  z9TestParforsMisc.test_issue4963_globals.<locals>.test_implÆ  s   € Ý”(Õ4Õ6NÐOÑPÔPˆCØˆJrX   r  r  s     rV   Útest_issue4963_globalsz&TestParforsMisc.test_issue4963_globalsÅ  s+   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐÐÐrX   c                 óH   ‡‡— dŠdŠˆˆfd„}|                       |¦  «         d S )Nr   r€   c                  ó4   •— t          j        ‰‰f¦  «        } | S rZ   rƒ  )r©  Ú_FREEVAR_INT_FOR_TESTING1Ú_FREEVAR_INT_FOR_TESTING2s    €€rV   r  z:TestParforsMisc.test_issue4963_freevars.<locals>.test_implÎ  s   ø€ Ý”(Ð5Ð7PÐQÑRÔRˆCØˆJrX   r  )rS   r  r­  r®  s     @@rV   Útest_issue4963_freevarsz'TestParforsMisc.test_issue4963_freevarsË  sH   øø€ Ø$&Ð!Ø$%Ð!ð	ð 	ð 	ð 	ð 	ð 	ð 	�
Š
�9ÑÔÐÐÐrX   c                 ó  ‡— ddl m}m}m} t          j        d„ ¦   «         Št	          j        dd¬¦  «        ˆfd„¦   «         }|                      | ||| ||¦  «        g¦  «        ¦  «         ||¦  «        f¦  «         d S )Nr   )ÚListTypeÚTuplerŽ  c                 ó   — d S rZ   r|   r8  s    rV   Ú_sinkz>TestParforsMisc.test_issue_9182_recursion_error.<locals>._sinkÖ  rp  rX   FT)rÏ  r”   c                 ó6  •— t          t          |¦  «        ¦  «        D ]z}| D ]u}|d         }|d         }|dk    r	|d         }n8t          |¦  «        dk    r|d         |d         }}nt          |¦  «        dk    r	 |dk    r ‰|¦  «          ‰|¦  «         ŒvŒ{d S )Nr   ró   râ   r  r~  )	ÚclausesÚnodesÚpiterÚclauseÚclause_typeÚclause_variablesÚclause_var_1Úclause_var_2r´  s	           €rV   Ú_ground_node_rulezJTestParforsMisc.test_issue_9182_recursion_error.<locals>._ground_node_ruleÛ  sÜ   ø€ õ
  ¥ E¡
¤
Ñ+Ô+ð ,ð ,�Ø%ð ,ð ,�FØ"(¨¤)�KØ'-¨a¤yÐ$Ø" aÒ'Ð'Ø'7¸Ô':˜˜ÝÐ-Ñ.Ô.°!Ò3Ð3à,¨QÔ/Ø,¨QÔ/ð '3˜˜õ
 Ð-Ñ.Ô.°!Ò3Ð3Øà" aÒ'Ð'Ø˜˜lÑ+Ô+Ð+Ø˜˜lÑ+Ô+Ð+øð!,ð,ð ,rX   )Únumba.typesr±  r²  rŽ  r    r   Úcompile)rS   r±  r²  rŽ  r¾  r´  s        @rV   Útest_issue_9182_recursion_errorz/TestParforsMisc.test_issue_9182_recursion_errorÓ  sË   ø€ Ø5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5å	Œð	ð 	ñ 
Œð	õ 
Œ˜%¨$Ð	/Ñ	/Ô	/ð	,ð 	,ð 	,ð 	,ñ 
0Ô	/ð	,ð. 	×!Ò!à�˜˜  d¨H¨H°T©N¬NÐ;Ñ<Ô<Ñ=Ô=Ø�˜‘”ðñ	
ô 	
ð 	
ð 	
ð 	
rX   c                 ó˜   — t          d¬¦  «        d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )NTr“   c                  ó€   — d} t          d¦  «        D ]+}t          d¦  «        D ]}t          d¦  «        D ]}| dz  } ŒŒŒ,| S r¿  r‡  )r°  r÷   rû   ry  s       rV   r  z8TestParforsMisc.test_lookup_cycle_detection.<locals>.fooý  sd   € ð ˆCÝ˜A‘Y”Yð !ð !�Ý˜q™œð !ð !�AÝ" 1™XœXð !ð !˜Ø˜q™˜˜ð!ð!ð ˆJrX   rþ  )rS   r  s     rV   Útest_lookup_cycle_detectionz+TestParforsMisc.test_lookup_cycle_detectionú  sU   € õ 
�tÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.rX   c                 óØ   — d„ }d} t          j        d¬¦  «        |¦  «        } t          j        d¬¦  «        |¦  «        }|                       ||¦  «         ||¦  «        ¦  «         d S )Nc                 óÂ   — d}t          j        | ¦  «        D ]G}t          j        |¦  «        }|di}t          d¦  «        D ]}||xx         dz  cc<   Œ|||         z  }ŒH|S )Nr   rý  r€   râ   )r    r   r�  rý   )Ú	num_nodesrÝ  Ú
inode_uintÚinodeÚprJ   s         rV   Ú
issue_9678z=TestParforsMisc.test_issue_9678_build_map.<locals>.issue_9678  sx   € ØˆCÝ#œl¨9Ñ5Ô5ð  ð  �
Ýœ JÑ/Ô/�Ø˜C�L�Ý˜q™œð "ð "�AØ�e�H�H”H ‘M�H�H‘H�HØ�q˜”x‘��ØˆJrX   rz  Fr“   T)r    ÚjitrÆ   )rS   rË  rÇ  Úissue_9678_serialÚissue_9678_parallels        rV   Útest_issue_9678_build_mapz)TestParforsMisc.test_issue_9678_build_map
  s�   € ð	ð 	ð 	ð ˆ	Ø5�EœI¨uÐ5Ñ5Ô5°jÑAÔAÐØ6�eœi°Ð6Ñ6Ô6°zÑBÔBÐØ×ÒÐ*Ð*¨9Ñ5Ô5Ø,Ð,¨YÑ7Ô7ñ	9ô 	9ð 	9ð 	9ð 	9rX   N) rw   rN   rx   rT  rá  rè  rï  rõ  rù  r  rG  rO  r_  rf  rl  rr  r=   r{  r€  r„  rŠ  r�  r—  rš  r>   r   r¤  rª  r¯  rÁ  rÄ  rÏ  r|   rX   rV   rÌ  rÌ    sÌ  € € € € € ðð ð7ð 7ð 7ð80ð 0ð 0ðKð Kð Kð@ð @ð @ð	ð 	ð 	ð:Jð :Jð :Jðx3Ið 3Ið 3Iðj6ð 6ð 6ð$.ð .ð .ð"2ð 2ð 2ð2	1ð 	1ð 	1ðð ð ð ð"ð "ñ „]ð"ð$	ð 	ð 	ð-ð -ð -ð
ð 
ð 
ð&
ð 
ð 
ð+ð +ð +ð&$ð $ð $ð& ð4ð 4ñ Ôð4ð&
ð 
ð 
ðð ð ðð ð ð%
ð %
ð %
ðN/ð /ð /ð 9ð 9ð 9ð 9ð 9rX   rÌ  c                   ód   — e Zd Zd„ Zd„ Zd„ Z	 	 	 dd„Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestParforsDiagnosticsc                 óN   —  | j         |g|¢R Ž \  }} | j        |||g|¢R i |¤Ž d S rZ   rØ   rÙ   s         rV   rÚ   zTestParforsDiagnostics.check  r#  rX   c                 ó†   — |                       |¦  «        }|                       |¦  «        }|                      ||¦  «         d S rZ   )Ú_fusion_equivalentrÆ   )rS   r‰  rŠ  r‡   rˆ   s        rV   Úassert_fusion_equivalencez0TestParforsDiagnostics.assert_fusion_equivalence#  sD   € Ø×#Ò# CÑ(Ô(ˆØ×#Ò# HÑ-Ô-ˆØ×Ò˜˜AÑÔÐÐÐrX   c                 óî   ‡— t          t          ¦  «        }t          |                     ¦   «         ¦  «        Št	          |                     ¦   «         ¦  «        D ]}ˆfd„||         D ¦   «         ||‰z
  <   Œ|S )Nc                 ó   •— g | ]}|‰z
  ‘ŒS r|   r|   )r¢   r£   Úmin_keys     €rV   r¤   z=TestParforsDiagnostics._fusion_equivalent.<locals>.<listcomp>3  s   ø€ Ð>Ð>Ð>°  G¡Ð>Ð>Ð>rX   )r   r¾   r­  ÚkeysÚsorted)rS   ÚthingÚnewr´   rØ  s       @rV   rÔ  z)TestParforsDiagnostics._fusion_equivalent(  st   ø€ õ �$ÑÔˆÝ�e—j’j‘l”lÑ#Ô#ˆÝ˜Ÿ
š
™œÑ%Ô%ð 	?ð 	?ˆAØ>Ð>Ð>Ð>°U¸1´XÐ>Ñ>Ô>ˆC��G‘ÑÐØˆ
rX   Nc                 ót  — |�(|                       ||                     ¦   «         ¦  «         |�|                      ||j        ¦  «         |�|                      ||j        ¦  «         |�H|j                             ¦   «         }|D ],}|D ]}	|	d         |k    r nŒd|›d|›�}
t          |
¦  «        ‚Œ-|�7|                     ¦   «         }|                       |t          |¦  «        ¦  «         t          ¦   «         5  t          dd¦  «        D ]}|                     |¦  «         Œ	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zReplacement for z was not found. Had râ   r€   )rÆ   Úcount_parforsrÕ  Úfusion_infoÚnested_fusion_infor­  rØ  r	  Úhoisted_allocationsrÈ   r4   rý   Údump)rS   r˜  Úparfors_countrß  rà  r­  rá  Úreplr£   Úreplacedrï   Úhoisted_allocss               rV   Úassert_diagnosticsz)TestParforsDiagnostics.assert_diagnostics6  sÏ  € ð Ð$Ø×Ò˜]¨K×,EÒ,EÑ,GÔ,GÑHÔHÐHØÐ"Ø×*Ò*¨;¸Ô8OÑPÔPÐPØÐ)Ø×*Ò*Ð+=Ø+6Ô+IñKô Kð KàÐ#ØÔ+×2Ò2Ñ4Ô4ˆDØ!ð .ð .�Ø $ð .ð .�HØ ”{ aÒ'Ð'Ø˜ð (ð.ð IJÈÈÈ4È4ÐP�CÝ(¨Ñ-Ô-Ð-ð ð
 Ð*Ø(×<Ò<Ñ>Ô>ˆNØ×ÒÐ0µ#°nÑ2EÔ2EÑFÔFÐFõ ÑÔð 	$ð 	$Ý˜1˜a‘[”[ð $ð $�Ø× Ò  Ñ#Ô#Ð#Ð#ð$ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$s   Ã6)D-Ä-D1Ä4D1c                 ó´   — d„ }|                       |¦  «         |                      |d¦  «        }|j        d         }|                      |ddddgi¬¦  «         d S )	Nc                  ó`   — d} t          j        | ¦  «        }t          j        | ¦  «        }||z   S ©Nr  r…  ©r÷   r‡   rˆ   s      rV   r  z9TestParforsDiagnostics.test_array_expr.<locals>.test_implT  s*   € ØˆAÝ”˜‘
”
ˆAÝ”˜‘”ˆAØ�q‘5ˆLrX   r|   Úparfor_diagnosticsrâ   r  r  r€   )rã  rß  ©rÚ   r—   r°  rç  ©rS   r  rª   r˜  s       rV   Útest_array_exprz&TestParforsDiagnostics.test_array_exprS  s}   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐØ×&Ò& y°"Ñ5Ô5ˆØ”oÐ&:Ô;ˆØ×Ò ¸1Ø/0°1°a°&¨kð 	 ñ 	;ô 	;ð 	;ð 	;ð 	;rX   c                 óª   — d„ }|                       |¦  «         |                      |d¦  «        }|j        d         }|                      |d¬¦  «         d S )Nc                  óf   — d} t          j        | ¦  «        }t          | ¦  «        D ]
}|dz  ||<   Œ|S rê  ©r¶   rÜ  r   )r÷   r‡   rû   s      rV   r  z5TestParforsDiagnostics.test_prange.<locals>.test_impla  s=   € ØˆAÝ”˜‘”ˆAÝ˜A‘Y”Yð ð �Ø˜2‘v��!‘�ØˆHrX   r|   rì  râ   ©rã  rí  rî  s       rV   Útest_prangez"TestParforsDiagnostics.test_prange`  sf   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐØ×&Ò& y°"Ñ5Ô5ˆØ”oÐ&:Ô;ˆØ×Ò ¸1ÐÑ=Ô=Ð=Ð=Ð=rX   c                 óÞ   — d„ }|                       |¦  «         |                      |d¦  «        }|j        d         }|                      t	          d„ |j        D ¦   «         ¦  «        ¦  «         dS )zEmake sure original user variable name is used in fusion info
        c                  ó  — d} t          j        | ¦  «        }t          j        |¦  «        }t          j        ||z  ¦  «        }d}t	          | dz
  ¦  «        D ].}t	          | dz
  ¦  «        D ]}|||         ||dz            z   z  }ŒŒ/|S )Nr  r   ró   râ   )r¶   r  ÚsinÚcosr   )r÷   r£   r‡   rˆ   r°  rû   ry  s          rV   r  z;TestParforsDiagnostics.test_user_varname.<locals>.test_implp  s�   € ØˆAÝ”˜‘
”
ˆAÝ”�q‘	”	ˆAÝ”�q˜1‘u‘”ˆAØˆCÝ˜A ™E‘]”]ð +ð +�Ý  A¡™œð +ð +�AØ˜1˜Qœ4 ! A¨¡E¤(™?Ñ*�C�Cð+àˆJrX   r|   rì  c              3   ó(   K  — | ]}d |j         v V — ŒdS )zslice(0, n, 1)N)r×  )r¢   rë  s     rV   rî  z;TestParforsDiagnostics.test_user_varname.<locals>.<genexpr>�  s*   è è € ÐRÐR°!Ð  A¤IÐ-ÐRÐRÐRÐRÐRÐRrX   N)rÚ   r—   r°  rH  ÚanyÚfusion_reportsrî  s       rV   Útest_user_varnamez(TestParforsDiagnostics.test_user_varnamem  s‹   € ð		ð 		ð 		ð 	�
Š
�9ÑÔÐØ×&Ò& y°"Ñ5Ô5ˆØ”oÐ&:Ô;ˆð 	�ŠÝÐRÐR°{Ô7QÐRÑRÔRÑRÔRñ	Tô 	Tð 	Tð 	Tð 	TrX   c                 ó²   — d„ }|                       |¦  «         |                      |d¦  «        }|j        d         }|                      |dddgi¬¦  «         d S )Nc                  ó˜   — d} t          j        | | f¦  «        }t          | ¦  «        D ]!}t          | ¦  «        D ]}|dz  |z   |||f<   ŒŒ"|S rê  rò  )r÷   r‡   rû   ry  s       rV   r  z<TestParforsDiagnostics.test_nested_prange.<locals>.test_impl„  se   € ØˆAÝ”˜!˜Q˜Ñ Ô ˆAÝ˜A‘Y”Yð )ð )�Ý ™œð )ð )�AØ "™f q™j�A�a˜�d‘G�Gð)àˆHrX   r|   rì  ró   râ   )rã  rà  rí  rî  s       rV   Útest_nested_prangez)TestParforsDiagnostics.test_nested_prangeƒ  s{   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐØ×&Ò& y°"Ñ5Ô5ˆØ”oÐ&:Ô;ˆØ×Ò ¸1Ø45¸°s°8ð 	 ñ 	=ô 	=ð 	=ð 	=ð 	=rX   c                 ó¶   — d„ }|                       |¦  «         |                      |d¦  «        }|j        d         }|                      |dddgidg¬¦  «         d S )	Nc                  óZ   — d} t          j        | ¦  «        }t          j        |¦  «        }|S rê  )r¶   r  r€  rë  s      rV   r  zCTestParforsDiagnostics.test_function_replacement.<locals>.test_impl“  s&   € ØˆAÝ”˜‘
”
ˆAÝ”	˜!‘”ˆAØˆHrX   r|   rì  râ   ró   r  )r€  rÝ  )rã  rß  r­  rí  rî  s       rV   Útest_function_replacementz0TestParforsDiagnostics.test_function_replacement’  s†   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐØ×&Ò& y°"Ñ5Ô5ˆØ”oÐ&:Ô;ˆØ×Ò ¸1Ø-.°°¨HØ0CÐ/Eð 	 ñ 	Gô 	Gð 	Gð 	Gð 	GrX   c                 óª   — d„ }|                       |¦  «         |                      |d¦  «        }|j        d         }|                      |d¬¦  «         d S )Nc                  óv   — d} t          j        | dz   ¦  «        }d}t          | ¦  «        D ]}|||         z  }Œ|S rp  ©r¶   r  r   ©r÷   r‡   r°  rû   s       rV   r  z8TestParforsDiagnostics.test_reduction.<locals>.test_impl¡  sF   € ØˆAÝ”˜˜A™‘”ˆAØˆCÝ˜A‘Y”Yð ð �Ø�q˜”t‘��ØˆJrX   r|   rì  ró   ró  rí  rî  s       rV   r'  z%TestParforsDiagnostics.test_reduction   óf   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐØ×&Ò& y°"Ñ5Ô5ˆØ”oÐ&:Ô;ˆØ×Ò ¸1ÐÑ=Ô=Ð=Ð=Ð=rX   c                 óª   — d„ }|                       |¦  «         |                      |d¦  «        }|j        d         }|                      |d¬¦  «         d S )Nc                  óv   — d} t          j        | dz   ¦  «        }d}t          | ¦  «        D ]}|||         z
  }Œ|S rp  r  r  s       rV   r  z>TestParforsDiagnostics.test_reduction_binop.<locals>.test_impl¯  sF   € ØˆAÝ”˜˜A™‘”ˆAØˆCÝ˜A‘Y”Yð !ð !�Ø˜A˜aœD‘j��ØˆJrX   r|   rì  ró   ró  rí  rî  s       rV   Útest_reduction_binopz+TestParforsDiagnostics.test_reduction_binop®  r  rX   c                 óª   — d„ }|                       |¦  «         |                      |d¦  «        }|j        d         }|                      |d¬¦  «         d S )Nc                  ó@   — d} t          j        | ¦  «        }d|d d …<   |S )Nr  r_  r  )r÷   r‡   s     rV   r  z6TestParforsDiagnostics.test_setitem.<locals>.test_impl½  s&   € ØˆAÝ”˜‘
”
ˆAØˆAˆaˆaˆa‰DØˆHrX   r|   rì  râ   ró  rí  rî  s       rV   Útest_setitemz#TestParforsDiagnostics.test_setitem¼  sf   € ð	ð 	ð 	ð 	�
Š
�9ÑÔÐØ×&Ò& y°"Ñ5Ô5ˆØ”oÐ&:Ô;ˆØ×Ò ¸1ÐÑ=Ô=Ð=Ð=Ð=rX   c                 óª   — d„ }|                       |¦  «         |                      |d¦  «        }|j        d         }|                      |d¬¦  «         d S )Nc                  ó¤   — d} d}d}t          | ¦  «        D ]9}t          j        |f¦  «        }t          |¦  «        D ]}|||<   Œ||d         z  }Œ:|S )Nr  r€   r   rI   )r   r¶   r;  rý   )r÷   r>  r°  rû   Útempry  s         rV   r  zBTestParforsDiagnostics.test_allocation_hoisting.<locals>.test_implÉ  si   € ØˆAØˆAØˆCÝ˜A‘Y”Yð  ð  �Ý”x  ‘~”~�Ý˜q™œð  ð  �AØ�D˜‘G�GØ�t˜B”x‘��ØˆJrX   r|   rì  râ   )rá  rí  rî  s       rV   Útest_allocation_hoistingz/TestParforsDiagnostics.test_allocation_hoistingÈ  sf   € ð		ð 		ð 		ð 	�
Š
�9ÑÔÐØ×&Ò& y°"Ñ5Ô5ˆØ”oÐ&:Ô;ˆØ×Ò ÀÐÑCÔCÐCÐCÐCrX   )NNNNN)rw   rN   rx   rÚ   rÕ  rÔ  rç  rï  rô  rü  rÿ  r  r'  r
  r  r  r|   rX   rV   rÑ  rÑ    sö   € € € € € ðMð Mð Mðð ð ð
ð ð ð =AØ@DØBFð$ð $ð $ð $ð:;ð ;ð ;ð>ð >ð >ðTð Tð Tð,=ð =ð =ðGð Gð Gð>ð >ð >ð>ð >ð >ð
>ð 
>ð 
>ðDð Dð Dð Dð DrX   rÑ  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestPrangeBasec                 ó¬  — |j         }t          |j        ¦  «        }|€?d|j        v sJ ‚t          d„ |j        D ¦   «         ¦  «        }t	          |j        ¦  «        }�n?|j                             d¦  «        }g }t          j        |¦  «        D ]B}|j	        dk    r5t          |j        ¦  «        |k    r|                     |j        dz   ¦  «         ŒC|                     d¦  «         t          |¦  «        }t          |¦  «        dz
  }	t          j        dv r	d|	dz  z   }	n(t          j        dv rnt#          t          j        ¦  «        ‚t%          |j        ¦  «        }t          |¦  «        t          |¦  «        k    sJ ‚|D ]}
||
         }|	||<   Œt	          |¦  «        }|                     ||¬	¦  «        }t)          j        |t-          ¦   «         ¦  «        }|S )
z�
        This function does the actual code augmentation to enable the explicit
        testing of `prange` calls in place of `range`.
        Nrý   c                 ó"   — g | ]}|d k    r|nd‘ŒS )rý   r   r|   r¡   s     rV   r¤   z7TestPrangeBase.generate_prange_func.<locals>.<listcomp>é  s:   € ð "Að "Að "AØ&'ð ()¨G¢| | ! !¸ð "Að "Að "ArX   ÚLOAD_GLOBALrâ   r   ))r  rÂ  )r  rz  )r  rÿ  )r  é   )r  rg  ))r  r  )Úco_codeÚco_names)Ú__code__r¾   r  r¦   Úbytesr  rï  ÚdisÚBytecodeÚopnamerB   rÈ  r¸   ÚoffsetrÈ   rC   Ú	PYVERSIONÚNotImplementedErrorÚ	bytearrayÚreplaceÚpytypesÚFunctionTypeÚglobals)rS   r§   Úpatch_instanceÚpyfunc_codeÚprange_namesÚnew_codeÚ	range_idxÚrange_locationsÚinstrÚ
prange_idxrû   r›  Úprange_codeÚpfuncs                 rV   Úgenerate_prange_funcz#TestPrangeBase.generate_prange_funcÜ  s  € ð
 ”oˆå˜KÔ0Ñ1Ô1ˆàÐ!ð ˜kÔ2Ð2Ð2Ð2Ð2Ý ð "Að "AØ+6Ô+?ð"Añ "Aô "Añ Bô BˆLå˜[Ô0Ñ1Ô1ˆH‰Hð $Ô,×2Ò2°7Ñ;Ô;ˆIØ ˆOåœ kÑ2Ô2ð Að A�Ø”< =Ò0Ð0Ý+¨E¬IÑ6Ô6¸)ÒCÐCØ'×.Ò.¨u¬|¸aÑ/?Ñ@Ô@Ð@øà×Ò Ñ)Ô)Ð)Ý  Ñ.Ô.ˆLÝ˜\Ñ*Ô*¨QÑ.ˆJÝŒÐ"OÐOÐOà *°¡/Ñ2�
�
Ý” JÐ.Ð.Øå)­%¬/Ñ:Ô:Ð:Ý  Ô!4Ñ5Ô5ˆHÝ�~Ñ&Ô&­#¨oÑ*>Ô*>Ò>Ð>Ð>Ð>à#ð +ð +�Ø% aÔ(�Ø *�˜‘�Ý˜X‘”ˆHð "×)Ò)°(Ø3?ð *ñ Aô Aˆõ Ô$ [µ'±)´)Ñ<Ô<ˆàˆrX   c                 óf  — |                      dd¦  «        }|                      dd¦  «        }|                      dd¦  «        }|                      ||¦  «        }t          d„ |D ¦   «         ¦  «        }|                      ||¦  «        }	t	          j        d¬¦  «        5 }
t	          j        d	¦  «         |                      ||¦  «        }ddd¦  «         n# 1 swxY w Y   |r|                      ||¦  «         |r%|  	                    ||¦  «        }t          d
|ifi |¤Ž} | j        ||	|g|¢R i |¤Ž |
S )aÔ
  
        The `prange` tester
        This is a hack. It basically switches out range calls for prange.
        It does this by copying the live code object of a function
        containing 'range' then copying the .co_names and mutating it so
        that 'range' is replaced with 'prange'. It then creates a new code
        object containing the mutation and instantiates a function to contain
        it. At this point three results are created:
        1. The result of calling the original python function.
        2. The result of calling a njit compiled version of the original
            python function.
        3. The result of calling a njit(parallel=True) version of the mutated
           function containing `prange`.
        The three results are then compared and the `prange` based function's
        llvm_ir is inspected to ensure the scheduler code is present.

        Arguments:
         pyfunc - the python function to test
         args - data arguments to pass to the pyfunc under test

        Keyword Arguments:
         patch_instance - iterable containing which instances of `range` to
                          replace. If not present all instance of `range` are
                          replaced.
         scheduler_type - 'signed', 'unsigned' or None, default is None.
                           Supply in cases where the presence of a specific
                           scheduler is to be asserted.
         check_fastmath - if True then a check will be performed to ensure the
                          IR contains instructions labelled with 'fast'
         check_fastmath_result - if True then a check will be performed to
                                 ensure the result of running with fastmath
                                 on matches that of the pyfunc
         Remaining kwargs are passed to np.testing.assert_almost_equal


        Example:
            def foo():
                acc = 0
                for x in range(5):
                    for y in range(10):
                        acc +=1
                return acc

            # calling as
            prange_tester(foo)
            # will test code equivalent to
            # def foo():
            #     acc = 0
            #     for x in prange(5): # <- changed
            #         for y in prange(10): # <- changed
            #             acc +=1
            #     return acc

            # calling as
            prange_tester(foo, patch_instance=[1])
            # will test code equivalent to
            # def foo():
            #     acc = 0
            #     for x in range(5): # <- outer loop (0) unchanged
            #         for y in prange(10): # <- inner loop (1) changed
            #             acc +=1
            #     return acc

        r'  Nr¯   FÚcheck_fastmath_resultc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r|   rŸ   r¡   s     rV   r¤   z0TestPrangeBase.prange_tester.<locals>.<listcomp>[  r¥   rX   TrÐ  rÒ  r°   )rÂ   r1  r¦   rœ   rÛ  rÜ  rÝ  r—   rS  rš   r*  rÖ   )rS   r§   r¨   r©   r'  r¯   r3  r0  r�   r«   rà  rª   Ú
fastcpfuncs                rV   Úprange_testerzTestPrangeBase.prange_tester  s   € ðB  ŸšÐ$4°dÑ;Ô;ˆØŸšÐ$4°eÑ<Ô<ˆØ &§
¢
Ð+BÀEÑ JÔ JÐà×)Ò)¨&°.ÑAÔAˆõ Ð3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4ˆØ×!Ò! &¨#Ñ.Ô.ˆõ Ô$¨DÐ1Ñ1Ô1ð 	7°_ÝÔ! (Ñ+Ô+Ð+Ø×*Ò*¨5°#Ñ6Ô6ˆFð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð
 ð 	-Ø× Ò  ¨Ñ,Ô,Ð,ð !ð 	DØ×7Ò7¸¸sÑCÔCˆJÝÐ+¨ZÐ8ÐCÐC¸FÐCÐCˆFà$ˆÔ$ V¨U°FÐL¸TÐLÐLÐLÀVÐLÐLÐLØÐs   Â+CÃCÃCN)rw   rN   rx   r1  r6  r|   rX   rV   r  r  Ú  s8   € € € € € ð4ð 4ð 4ðl\ð \ð \ð \ð \rX   r  c                   ó
  — 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 ej        d¦  «        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%S )&ÚTestPrangeBasicz Tests Prange c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  óf   — d} t          j        | ¦  «        }t          | ¦  «        D ]
}d|z  ||<   Œ|S )Nr  r&  ©r¶   r;  rý   rê  s      rV   r  z0TestPrangeBasic.test_prange01.<locals>.test_implv  s=   € ØˆAÝ”˜‘”ˆAÝ˜1‘X”Xð ð �Ø˜Q‘w��!‘�ØˆHrX   ré   T©r®   r¯   ©r6  r  s     rV   Útest_prange01zTestPrangeBasic.test_prange01u  óA   € ð	ð 	ð 	ð 	×Ò˜9°ZØ*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  ót   — d} t          j        | dz
  ¦  «        }t          d| ¦  «        D ]}d|z  ||dz
  <   Œ|S )Nr  râ   r&  r;  rê  s      rV   r  z0TestPrangeBasic.test_prange02.<locals>.test_impl€  sG   € ØˆAÝ”˜˜Q™‘”ˆAÝ˜1˜a‘[”[ð #ð #�Ø ™7��!�a‘%‘�ØˆHrX   ré   Tr<  r=  r  s     rV   Útest_prange02zTestPrangeBasic.test_prange02  r?  rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  ó8   — d} t          d¦  «        D ]}| dz  } Œ| S ©Nr  ró   r|  ©r¼  rû   s     rV   r  z0TestPrangeBasic.test_prange03.<locals>.test_implŠ  ó,   € ØˆAÝ˜2‘Y”Yð ð �Ø�Q‘��ØˆHrX   ré   Tr<  r=  r  s     rV   Útest_prange03zTestPrangeBasic.test_prange03‰  óA   € ð	ð 	ð 	ð
 	×Ò˜9°ZØ*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  ó8   — d} t          d¦  «        D ]}| dz  } Œ| S )Nr  r  ró   r|  rF  s     rV   r  z3TestPrangeBasic.test_prange03mul.<locals>.test_impl“  s,   € ØˆAÝ˜2‘Y”Yð ð �Ø�Q‘��ØˆHrX   ré   Tr<  r=  r  s     rV   Útest_prange03mulz TestPrangeBasic.test_prange03mul’  rI  rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  ó8   — d} t          d¦  «        D ]}| dz  } Œ| S )Nrß  r  ró   r|  rF  s     rV   r  z3TestPrangeBasic.test_prange03sub.<locals>.test_implœ  s,   € ØˆAÝ˜2‘Y”Yð ð �Ø�Q‘��ØˆHrX   ré   Tr<  r=  r  s     rV   Útest_prange03subz TestPrangeBasic.test_prange03sub›  rI  rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  ó8   — d} t          d¦  «        D ]}| dz  } Œ| S rE  r|  rF  s     rV   r  z3TestPrangeBasic.test_prange03div.<locals>.test_impl¥  rG  rX   ré   Tr<  r=  r  s     rV   Útest_prange03divz TestPrangeBasic.test_prange03div¤  rI  rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  ó|   — d} d}t          j        d¦  «        }t          d¦  «        D ]}|| k    r|||<   Œd||<   Œ|S )Nró   r  r  r   ©r¶   rÜ  rý   ©r‡   rˆ   rz  rû   s       rV   r  z0TestPrangeBasic.test_prange04.<locals>.test_impl®  sR   € ØˆAØˆAÝ”˜‘”ˆAÝ˜1‘X”Xð ð �Ø˜’6�6Ø�A�a‘D�Dà�A�a‘D�DØˆHrX   ré   Tr<  r=  r  s     rV   Útest_prange04zTestPrangeBasic.test_prange04­  sA   € ð		ð 		ð 		ð 	×Ò˜9°ZØ*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  ó’   — d} t          j        | t           j        ¬¦  «        }d}t          d| dz
  d¦  «        D ]}|||         z  }Œ|S ©Nr  r"  r   râ   ©r¶   r  r’  rý   ©r÷   rz  r¼  rû   s       rV   r  z0TestPrangeBasic.test_prange05.<locals>.test_impl¼  sU   € ØˆAÝ”˜¥2¤:Ð.Ñ.Ô.ˆAØˆAÝ˜1˜a !™e QÑ'Ô'ð ð �Ø�Q�q”T‘	��ØˆHrX   ré   Tr<  r=  r  s     rV   Útest_prange05zTestPrangeBasic.test_prange05»  óA   € ð	ð 	ð 	ð 	×Ò˜9°ZØ*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  óŒ   — d} t          j        | t           j        ¬¦  «        }d}t          ddd¦  «        D ]}|||         z  }Œ|S rZ  r[  r\  s       rV   r  z0TestPrangeBasic.test_prange06.<locals>.test_implÇ  sO   € ØˆAÝ”˜¥2¤:Ð.Ñ.Ô.ˆAØˆAÝ˜1˜a ‘^”^ð ð �Ø�Q�q”T‘	��ØˆHrX   ré   Tr<  r=  r  s     rV   Útest_prange06zTestPrangeBasic.test_prange06Æ  r^  rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  óŠ   — d} t          j        | t           j        ¬¦  «        }d}t          | d¦  «        D ]}|||         z  }Œ|S rZ  r[  r\  s       rV   r  z0TestPrangeBasic.test_prange07.<locals>.test_implÒ  sM   € ØˆAÝ”˜¥2¤:Ð.Ñ.Ô.ˆAØˆAÝ˜1˜a‘[”[ð ð �Ø�Q�q”T‘	��ØˆHrX   ré   Tr<  r=  r  s     rV   Útest_prange07zTestPrangeBasic.test_prange07Ñ  r^  rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  óÈ   — d} t          j        | ¦  «        }d}t          t          |¦  «        ¦  «        D ],}t          t          |¦  «        ¦  «        D ]}|||         z  }ŒŒ-|S r¤  ©r¶   r  rý   rÈ   ©r÷   rz  r°  rû   ry  s        rV   r  z0TestPrangeBasic.test_prange08.<locals>.test_implÝ  sh   € ØˆAÝ”˜‘”ˆAØˆCÝ�3˜q™6œ6‘]”]ð  ð  �Ý�s 1™vœv™œð  ð  �AØ˜1˜Qœ4‘K�C�Cð àˆJrX   ré   Tr<  r=  r  s     rV   Útest_prange08zTestPrangeBasic.test_prange08Ü  óA   € ð	ð 	ð 	ð 	×Ò˜9°ZØ*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  ó”   — d} t          j        | ¦  «        }d}t          d¦  «        D ]}t          d¦  «        D ]}|||         z  }ŒŒ |S r¤  ©r¶   r  rý   rh  s        rV   r  z2TestPrangeBasic.test_prange08_1.<locals>.test_implé  s\   € ØˆAÝ”˜‘”ˆAØˆCÝ˜1‘X”Xð  ð  �Ý˜q™œð  ð  �AØ˜1˜Qœ4‘K�C�Cð àˆJrX   ré   Tr<  r=  r  s     rV   Útest_prange08_1zTestPrangeBasic.test_prange08_1è  rj  rX   c                 ó@   — d„ }|                       |dgdd¬¦  «         d S )Nc                  ó`   — d} d}t          | ¦  «        D ]}t          | ¦  «        D ]}|dz  }ŒŒ|S ©Nr  r   râ   r|  )r÷   r°  rû   ry  s       rV   r  z0TestPrangeBasic.test_prange09.<locals>.test_implõ  sK   € ØˆAØˆCÝ˜1‘X”Xð ð �Ý˜q™œð ð �AØ˜1‘H�C�CðàˆJrX   râ   ré   T©r'  r®   r¯   r=  r  s     rV   Útest_prange09zTestPrangeBasic.test_prange09ô  sF   € ð	ð 	ð 	ð 	×Ò˜9°a°SØ*4Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó@   — d„ }|                       |dgdd¬¦  «         d S )Nc                  ón   — d} d}t          | ¦  «        D ] }d}t          | ¦  «        D ]}|dz  }Œ||z  }Œ!|S rq  r|  )r÷   Úacc2ry  Úacc1rû   s        rV   r  z0TestPrangeBasic.test_prange10.<locals>.test_impl  sV   € ØˆAØˆDÝ˜1‘X”Xð ð �Ø�Ý˜q™œð ð �AØ˜A‘I�D�DØ˜‘��ØˆKrX   r   ré   Trr  r=  r  s     rV   Útest_prange10zTestPrangeBasic.test_prange10  sF   € ð	ð 	ð 	ð 	×Ò˜9°a°SØ*4Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   z1list append is not thread-safe yet (#2391, #2408)c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  ó8   — d} d„ t          | ¦  «        D ¦   «         S )Nr  c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r|   )r¶   r÷  )r¢   ry  s     rV   r¤   zDTestPrangeBasic.test_prange11.<locals>.test_impl.<locals>.<listcomp>  s    € Ð0Ð0Ð0 !•B”F˜1‘I”IÐ0Ð0Ð0rX   r|  rö   s    rV   r  z0TestPrangeBasic.test_prange11.<locals>.test_impl  s!   € ØˆAØ0Ð0¥u¨Q¡x¤xÐ0Ñ0Ô0Ð0rX   ré   Tr<  r=  r  s     rV   Útest_prange11zTestPrangeBasic.test_prange11  sA   € ð	1ð 	1ð 	1ð 	×Ò˜9°ZØ*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó<   — d„ }|                       |dd¬¦  «         d S )Nc                  óŒ   — d} d}t          j        |¦  «        }t          t          |¦  «         ¦  «        D ]}| ||         z  } Œ| S rÖ  rg  )r°  r÷   ro  rû   s       rV   r  z0TestPrangeBasic.test_prange12.<locals>.test_impl  sJ   € ØˆCØˆAÝ”˜‘
”
ˆAÝ�C ™FœF˜7‘^”^ð ð �Ø�q˜”t‘��ØˆJrX   ré   Tr<  r=  r  s     rV   Útest_prange12zTestPrangeBasic.test_prange12  sA   € ð	ð 	ð 	ð 	×Ò˜9°ZØ*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ób   — d„ }|                       |t          j        d¦  «        dd¬¦  «         d S )Nc                 ó8   — d}t          | ¦  «        D ]}|dz  }Œ|S r¿  r|  rî  s      rV   r  z0TestPrangeBasic.test_prange13.<locals>.test_impl$  s,   € ØˆCÝ˜1‘X”Xð ð �Ø�q‘��ØˆJrX   r  ré   Tr<  )r6  r¶   r  r  s     rV   Útest_prange13zTestPrangeBasic.test_prange13#  sK   € ð	ð 	ð 	ð
 	×Ò˜9¥b¤h¨q¡k¤kÀ*Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 óx   — d„ }|                       |t          j                             d¦  «        dd¬¦  «         d S )Nc                 ód   — d}t          t          | ¦  «        ¦  «        D ]}|| |         dz  z  }Œ|S )Nr  ró   ©rý   rÈ   )rz  r¼  rû   s      rV   r  z0TestPrangeBasic.test_prange14.<locals>.test_impl-  s:   € ØˆAÝ�3˜q™6œ6‘]”]ð ð �Ø�Q�q”T˜!‘V‘��ØˆHrX   r  ré   Tr<  )r6  r¶   r‰  rŠ  r  s     rV   Útest_prange14zTestPrangeBasic.test_prange14,  sR   € ð	ð 	ð 	ð 	×Ò˜9¥b¤i§n¢n°QÑ&7Ô&7Ø*4Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó>   — d„ }|                       |ddd¬¦  «         d S )Nc                 ól   — d}t          | ¦  «        D ]!}t          j        d¦  «        }||d         z  }Œ"|S )Nr   r,  r0  )rý   r¶   r  )r‹  r°  rû   r£   s       rV   r  z0TestPrangeBasic.test_prange15.<locals>.test_impl<  s=   € ØˆCÝ˜1‘X”Xð ð �Ý”G˜F‘O”O�Ø�q˜”w‘��ØˆJrX   r™  ré   Tr<  r=  r  s     rV   Útest_prange15zTestPrangeBasic.test_prange159  sC   € ð	ð 	ð 	ð 	×Ò˜9 d¸:Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó>   — d„ }|                       |ddd¬¦  «         d S )Nc                 ó<   — d}t          |  | ¦  «        D ]}|dz  }Œ|S rË  r|  ©r‹  r°  rû   s      rV   r  z0TestPrangeBasic.test_prange16.<locals>.test_implG  s0   € ØˆCÝ˜A˜2˜q‘\”\ð ð �Ø�q‘��ØˆJrX   r™  rè   Tr<  r=  r  s     rV   Útest_prange16zTestPrangeBasic.test_prange16F  sC   € ð	ð 	ð 	ð
 	×Ò˜9 d¸8Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó>   — d„ }|                       |ddd¬¦  «         d S )Nc                 óp   — d}t          j        | ¦  «        }t          |  | ¦  «        D ]}|||         z  }Œ|S rË  rm  ©r‹  r°  ro  rû   s       rV   r  z0TestPrangeBasic.test_prange17.<locals>.test_implP  sA   € ØˆCÝ”˜‘
”
ˆAÝ˜A˜2˜q‘\”\ð ð �Ø�q˜”t‘��ØˆJrX   r�  rè   Tr<  r=  r  s     rV   Útest_prange17zTestPrangeBasic.test_prange17O  óC   € ð	ð 	ð 	ð 	×Ò˜9 a¸Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó>   — d„ }|                       |ddd¬¦  «         d S )Nc                 ó¬   — d}t          j        | ¦  «        }t          |  d¦  «        D ]+}|||         z  }t          d| ¦  «        D ]}|||         z  }ŒŒ,|S )Nr   r€   éüÿÿÿrm  )r‹  r°  ro  rû   ry  s        rV   r  z0TestPrangeBasic.test_prange18.<locals>.test_implZ  sj   € ØˆCÝ”˜‘
”
ˆAÝ˜A˜2˜q‘\”\ð  ð  �Ø�q˜”t‘�Ý˜r 1™œð  ð  �AØ˜1˜Qœ4‘K�C�Cð àˆJrX   r�  rè   Tr<  r=  r  s     rV   Útest_prange18zTestPrangeBasic.test_prange18Y  óC   € ð	ð 	ð 	ð 	×Ò˜9 a¸Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó>   — d„ }|                       |ddd¬¦  «         d S )Nc                 óª   — d}| dz   }t          j        | |f¦  «        }t          |  | ¦  «        D ]#}t          | |¦  «        D ]}||||f         z  }ŒŒ$|S rÖ  rm  )r‹  r°  ÚMro  rû   ry  s         rV   r  z0TestPrangeBasic.test_prange19.<locals>.test_implf  sp   € ØˆCØ�A‘ˆAÝ”˜˜A˜‘”ˆAÝ˜A˜2˜q‘\”\ð #ð #�Ý ˜r 1™œð #ð #�AØ˜1˜Q ˜Tœ7‘N�C�Cð#àˆJrX   r�  rè   Tr<  r=  r  s     rV   Útest_prange19zTestPrangeBasic.test_prange19e  r—  rX   c                 ó>   — d„ }|                       |ddd¬¦  «         d S )Nc                 ón   — d}t          j        | ¦  «        }t          d| ¦  «        D ]}|||         z  }Œ|S )Nr   rI   rm  r�  s       rV   r  z0TestPrangeBasic.test_prange20.<locals>.test_implr  s?   € ØˆCÝ”˜‘
”
ˆAÝ˜2˜q‘\”\ð ð �Ø�q˜”t‘��ØˆJrX   r�  rè   Tr<  r=  r  s     rV   Útest_prange20zTestPrangeBasic.test_prange20q  r’  rX   c                 ó>   — d„ }|                       |ddd¬¦  «         d S )Nc                 ó:   — d}t          dd¦  «        D ]}|dz  }Œ|S )Nr   ri  rI   r  r|  rŒ  s      rV   r  z0TestPrangeBasic.test_prange21.<locals>.test_impl|  s.   € ØˆCÝ˜2˜r‘]”]ð ð �Ø�q‘��ØˆJrX   r�  rè   Tr<  r=  r  s     rV   Útest_prange21zTestPrangeBasic.test_prange21{  sC   € ð	ð 	ð 	ð
 	×Ò˜9 a¸Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c                 ó>   — d„ }|                       |ddd¬¦  «         d S )Nc                  ó–   — d} d}t          j        d¦  «        }t          dd¦  «        D ]}|| k    r|||<   Œ|dk     rd||<   Œd||<   Œ |S )	Nr   r  r  ra  ró   râ   rI   r_  rU  rV  s       rV   r  z0TestPrangeBasic.test_prange22.<locals>.test_impl…  sh   € ØˆAØˆAÝ”˜‘”ˆAÝ˜2˜q‘\”\ð ð �Ø˜’6�6Ø�A�a‘D�DØ˜’U�UØ�A�a‘D�Dà�A�a‘D�DØˆHrX   rè   T©r®   r¯   r3  r=  r  s     rV   Útest_prange22zTestPrangeBasic.test_prange22„  sH   € ð	ð 	ð 	ð 	×Ò˜9°XØ*.Àdð 	ñ 	Lô 	Lð 	Lð 	Lð 	LrX   c                 óz   — d„ }t          j        d¦  «        d d d…         }|                      ||ddd¬¦  «         d S )Nc                 óN   — t          t          | ¦  «        ¦  «        D ]}|| |<   Œ| S rZ   r…  ©rz  rû   s     rV   r  z0TestPrangeBasic.test_prange23.<locals>.test_impl–  s-   € Ý�3˜q™6œ6‘]”]ð ð �Ø��!‘�ØˆHrX   é    ró   ré   Tr¤  ©r¶   r;  r6  ©rS   r  rz  s      rV   Útest_prange23zTestPrangeBasic.test_prange23”  sb   € ð	ð 	ð 	õ ŒH�R‰LŒL˜˜˜1˜ÔˆØ×Ò˜9 a¸
Ø*.Àdð 	ñ 	Lô 	Lð 	Lð 	Lð 	LrX   c                 óz   — d„ }t          j        d¦  «        d d d…         }|                      ||ddd¬¦  «         d S )Nc                 óR   — t          t          | ¦  «         d¦  «        D ]}|| |<   Œ| S rË  r…  r¨  s     rV   r  z0TestPrangeBasic.test_prange24.<locals>.test_impl   s3   € Ý�C ™FœF˜7 AÑ&Ô&ð ð �Ø��!‘�ØˆHrX   r©  ró   rè   Tr¤  rª  r«  s      rV   Útest_prange24zTestPrangeBasic.test_prange24ž  sb   € ð	ð 	ð 	õ ŒH�R‰LŒL˜˜˜1˜ÔˆØ×Ò˜9 a¸Ø*.Àdð 	ñ 	Lô 	Lð 	Lð 	Lð 	LrX   c                 óF  — d„ }t          j        d¦  «        }|                      ||dgddd¬¦  «         |                      |t	          j        |¦  «        f¦  «        }|j        d         }|                     ¦   «         }|                      t          |¦  «        d¦  «         d S )	Nc                 ó�   ‡ — t          ‰ ¦  «        }ˆ fd„t          |¦  «        D ¦   «         }t          |¦  «        D ]
}‰ |z   ||<   Œ|S )Nc                 ó8   •— g | ]}t          j        ‰¦  «        ‘ŒS r|   )r¶   Ú
zeros_like)r¢   rJ   rz  s     €rV   r¤   zDTestPrangeBasic.test_prange25.<locals>.test_impl.<locals>.<listcomp>«  s#   ø€ Ð6Ð6Ð6¨•2”= Ñ#Ô#Ð6Ð6Ð6rX   )rÈ   rý   )rz  r÷   r©  rû   s   `   rV   r  z0TestPrangeBasic.test_prange25.<locals>.test_impl©  sV   ø€ Ý�A‘”ˆAØ6Ð6Ð6Ð6­U°1©X¬XÐ6Ñ6Ô6ˆCÝ˜1‘X”Xð ð �Ø˜Q™��A‘�ØˆJrX   r�  râ   ré   T)r'  r®   r¯   r3  rì  r   )
r¶   r  r6  r—   r    r   r°  rá  rÆ   rÈ   )rS   r  rz  rª   r˜  ræ  s         rV   Útest_prange25zTestPrangeBasic.test_prange25¨  s±   € ð	ð 	ð 	õ ŒG�E‰NŒNˆØ×Ò˜9 a¸!¸Ø*4ÀTØ15ð 	ñ 	7ô 	7ð 	7ð ×&Ò& yµ5´<À±?´?Ð2DÑEÔEˆØ”oÐ&:Ô;ˆØ$×8Ò8Ñ:Ô:ˆØ×Ò�˜^Ñ,Ô,¨aÑ0Ô0Ð0Ð0Ð0rX   c                 óz   — d„ }t          j        d¦  «        d d d…         }|                      ||ddd¬¦  «         d S )Nc                 ód   — | d d d…         }t          t          |¦  «        ¦  «        D ]}|||<   Œ| S ru  r…  )rz  rª  rû   s      rV   r  z0TestPrangeBasic.test_prange26.<locals>.test_implº  s<   € Ø�#�#�A�#”ˆAÝ�3˜q™6œ6‘]”]ð ð �Ø��!‘�ØˆHrX   r©  ró   ré   Tr¤  rª  r«  s      rV   Útest_prange26zTestPrangeBasic.test_prange26¹  sb   € ð	ð 	ð 	õ
 ŒH�R‰LŒL˜˜˜1˜ÔˆØ×Ò˜9 a¸
Ø*.Àdð 	ñ 	Lô 	Lð 	Lð 	Lð 	LrX   c           	      ó’   — d„ }|                       |t          j        d¦  «        t          j        g d¢¦  «        ddgdd¬¦  «         d S )	Nc                 ó¤   — t          |d         dz
  ¦  «        D ]6}t          d¦  «        D ]$}t          j        | |dz
  |dz   …         ¦  «        }Œ%Œ7dS rò   )rý   r¶   Úabs)r‡   rˆ   rì  ry  r´   rI  s         rV   r  z0TestPrangeBasic.test_prange27.<locals>.test_implÅ  s_   € Ý˜1˜Qœ4 ™6‘]”]ð +ð +�Ý˜q™œð +ð +�AÝœ˜q  1¡ Q q¡S œzÑ*Ô*�A�Að+à�1rX   r?  )
r  r  r  r  r  r  r  r  r  r  r   râ   ré   Trr  )r6  r¶   rþ  Úasarrayr  s     rV   Útest_prange27zTestPrangeBasic.test_prange27Ã  si   € ð	ð 	ð 	ð 	×Ò˜9Ýœ9 R™=œ=Ýœ:Ð&;Ð&;Ð&;Ñ<Ô<ØØ+,¨#Ø*4Ø*.ð 	ñ 	0ô 	0ð 	0ð 	0ð 	0rX   c           	      óÔ   — d„ }t          j        ddgddgddgddgddgddgg¦  «        }t          j        ddgddgddgdd	gd	d
gg¦  «        }|                      |||ddd¬¦  «         d S )Nc                 ó  — t          j        t          |¦  «        ¦  «        }t          dt          |¦  «        ¦  «        D ]A}||df         }||df         }| |         }| |         }||z
  }|d         |d         z   }	|	||<   ŒB|S r¿  )r¶   r;  rÈ   rý   )
r£   rh  rÝ  r›  Úi0rð  ÚPt1ÚPt2rí  Úvl2s
             rV   r  z0TestPrangeBasic.test_prange28.<locals>.test_implÖ  sŒ   € Ý”(�3˜q™6œ6Ñ"Ô"ˆCÝ˜Q¥ A¡¤Ñ'Ô'ð ð �Ø�s˜A�v”Y�Ø�s˜A�v”Y�Ø˜”e�Ø˜”e�Ø˜#‘I�Ø˜”d˜Q˜qœT‘k�Ø��C‘�ØˆJrX   ç      ð¿rW  rý  r   râ   ró   r  r  r€   ré   Tr¤  )r¶   rˆ  r6  rQ  s       rV   Útest_prange28zTestPrangeBasic.test_prange28Ô  sÇ   € ð
	ð 
	ð 
	õ ŒH�s˜C�jØ˜R�jØ˜R�jØ˜C�jØ˜R�jØ˜R�jð"ñ #ô #ˆõ ŒH�q˜!�fØ˜!�fØ˜!�fØ˜!�fØ˜!�fð	ñ ô ˆð 	×Ò˜9 a¨¸:Ø*.Àdð 	ñ 	Lô 	Lð 	Lð 	Lð 	LrX   c                 ód   — d„ }|                       |d¦  «         |                       |d¦  «         d S )Nc                 ól   — d}| rt          d¦  «        D ]}|dz  }Œnt          d¦  «        D ]}|dz  }Œ|S )Nr   râ   r  r|  )rà  r	  rû   s      rV   r  z0TestPrangeBasic.test_prange29.<locals>.test_implô  s[   € ØˆFØð  Ý˜q™œð  ð  �AØ˜a‘K�F�Fð õ ˜q™œð  ð  �AØ˜a‘K�F�FØˆMrX   TFr=  r  s     rV   Útest_prange29zTestPrangeBasic.test_prange29ò  sE   € ð	ð 	ð 	ð 	×Ò˜9 dÑ+Ô+Ð+Ø×Ò˜9 eÑ,Ô,Ð,Ð,Ð,rX   c                 ó¸   — d„ }t          j        t          j        ddd¦  «        ¦  «        }t          j        g d¢¦  «        }|                      |||d¦  «         d S )Nc                 ó,  — |j         d         }t          | ¦  «        }t          j        ||ft          j        ¬¦  «        }t          | ¦  «        |z   dz
  |z  }t          |¦  «        D ]-}||z  }|dz   |z  }	| ||	…         |d d …         z  |d d …||	…f<   Œ.|S rR  )r‡  rÈ   r¶   r;  r’  rý   )
r£   ÚparÚ
numthreadsÚn_parÚn_xr	  Úchunklenrû   rÔ  rÕ  s
             rV   r  z0TestPrangeBasic.test_prange30.<locals>.test_impl  s­   € Ø”I˜a”LˆEÝ�a‘&”&ˆCÝ”X˜u c˜lµ"´*Ð=Ñ=Ô=ˆFÝ˜A™œ Ñ+¨aÑ/°JÑ>ˆHå˜:Ñ&Ô&ð ?ð ?�Ø˜H™�Ø˜A™ Ñ)�Ø()¨%°¨*¬¸¸A¸A¸A¼Ñ(>��q�q�q˜% ˜*�}Ñ%Ð%àˆMrX   r   r  rW  r@  ró   )r¶   rˆ  rþ  r6  )rS   r  r£   rÊ  s       rV   Útest_prange30zTestPrangeBasic.test_prange30  sc   € ð	ð 	ð 	õ ŒH•R”Y˜q ! SÑ)Ô)Ñ*Ô*ˆÝŒh���Ñ'Ô'ˆà×Ò˜9 a¨¨aÑ0Ô0Ð0Ð0Ð0rX   N)(rw   rN   rx   rT  r>  rB  rH  rL  rO  rR  rW  r]  ra  rd  ri  rn  rs  rx  rn  Úskipr|  r  r‚  r†  r‰  r�  r‘  r–  r›  rž  r¡  r¥  r¬  r¯  r´  r·  r¼  rÄ  rÇ  rÏ  r|   rX   rV   r8  r8  q  sB  € € € € € àÐð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð	0ð 	0ð 	0ð	0ð 	0ð 	0ð	0ð 	0ð 	0ð
0ð 
0ð 
0ð
0ð 
0ð 
0ð0ð 0ð 0ð0ð 0ð 0ð €X„]ÐFÑGÔGð0ð 0ñ HÔGð0ð	0ð 	0ð 	0ð0ð 0ð 0ð0ð 0ð 0ð
0ð 
0ð 
0ð0ð 0ð 0ð0ð 0ð 0ð
0ð 
0ð 
0ð
0ð 
0ð 
0ð0ð 0ð 0ð0ð 0ð 0ðLð Lð Lð Lð Lð LðLð Lð Lð1ð 1ð 1ð"Lð Lð Lð0ð 0ð 0ð"Lð Lð Lð<-ð -ð -ð1ð 1ð 1ð 1ð 1rX   r8  c                 ó
   — | |fS rZ   r|   r†   s     rV   Útest_call_hoisting_outcallrÒ    s   € àˆqˆ6€MrX   c                   ó   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Z	d„ Z
d„ Z ej        d	¦  «        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 e!d„ ¦   «         Z"dS )ÚTestPrangeSpecificz4 Tests specific features/problems found under prangec                 ó8   — d„ }|                       |d¦  «         d S )Nc                 óN   — d}t          | ¦  «        D ]}|dz  }|dk    r|dz  }Œ|S ©Nr   râ   r  r|  ©r÷   rì  rû   s      rV   r  zRTestPrangeSpecific.test_prange_two_instances_same_reduction_var.<locals>.test_impl!  ó=   € ØˆAÝ˜1‘X”Xð ð �Ø�Q‘�Ø�r’6�6Ø˜‘F�AøØˆHrX   r�  r=  r  s     rV   Ú,test_prange_two_instances_same_reduction_varz?TestPrangeSpecific.test_prange_two_instances_same_reduction_var  s/   € ð	ð 	ð 	ð 	×Ò˜9 aÑ(Ô(Ð(Ð(Ð(rX   c                 óú   — d„ }|                       t          j        ¦  «        5 }|                      |d¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         d S )Nc                 óN   — d}t          | ¦  «        D ]}|dz  }|dk    r|dz  }Œ|S r×  r|  rØ  s      rV   r  zKTestPrangeSpecific.test_prange_conflicting_reduction_ops.<locals>.test_impl+  rÙ  rX   r�  zBReduction variable c has multiple conflicting reduction operators.)r  r   ÚUnsupportedErrorr6  rê   r  r
  ©rS   r  r  rï   s       rV   Ú%test_prange_conflicting_reduction_opsz8TestPrangeSpecific.test_prange_conflicting_reduction_ops*  s¾   € ð	ð 	ð 	ð ×Ò�vÔ6Ñ7Ô7ð 	-¸6Ø×Ò˜y¨!Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ðˆà�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1ó   £AÁA
ÁA
c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó�   — dx} }t          d¦  «        D ]/}|dk    r| dz  } Œt          j        d¦  «        }|d         r|dz  }Œ0| |fS )Nr   râ   ró   r,  r0  rø  )rz  rª  r´   r£   s       rV   r  zLTestPrangeSpecific.test_prange_two_conditional_reductions.<locals>.test_impl;  sb   € ØˆIˆA�Ý˜1‘X”Xð ð �Ø˜’6�6Ø˜‘F�A�Aåœ Ñ(Ô(�AØ˜”wð Ø˜Q™˜øØ�a�4ˆKrX   r=  r  s     rV   Ú&test_prange_two_conditional_reductionsz9TestPrangeSpecific.test_prange_two_conditional_reductions9  s-   € ð		ð 		ð 		ð 	×Ò˜9Ñ%Ô%Ð%Ð%Ð%rX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  óh   — d} t          d¦  «        D ]}t          d¦  «        D ]}|dk    r| dz  } ŒŒ | S r¿  r|  )rz  r´   rû   s      rV   r  zCTestPrangeSpecific.test_prange_nested_reduction1.<locals>.test_implH  sP   € ØˆAÝ˜1‘X”Xð ð �Ý˜q™œð ð �AØ˜A’v�vØ˜Q™˜øðð ˆHrX   r=  r  s     rV   Útest_prange_nested_reduction1z0TestPrangeSpecific.test_prange_nested_reduction1G  s-   € ð	ð 	ð 	ð 	×Ò˜9Ñ%Ô%Ð%Ð%Ð%rX   c                 ó  — d„ }|                       t          ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      |d ¦  «        }|                      |d¦  «        }|                      |d¦  «        }|                       t          ¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }|                      |d         t          j        ¦  «         d S )Nc                  óf   — d} t          j        | ¦  «        }t          | ¦  «        D ]
}d|z  ||<   Œ|S )Nr©  râ   r;  rê  s      rV   r  z<TestPrangeSpecific.test_check_error_model.<locals>.test_implS  s=   € ØˆAÝ”˜‘”ˆAÝ˜1‘X”Xð ð �Ø˜1‘u��!‘�ØˆHrX   r|   r   )	r  ÚZeroDivisionErrorr1  r—   rš   rÃ   rÆ   r¶   r  )rS   r  r  r0  ÚpcresÚpfcresr	  s          rV   Útest_check_error_modelz)TestPrangeSpecific.test_check_error_modelQ  sv  € ð	ð 	ð 	ð ×ÒÕ0Ñ1Ô1ð 	°VØˆI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×)Ò)¨)°TÑ:Ô:ˆØ×%Ò% e¨RÑ0Ô0ˆØ×/Ò/°°rÑ:Ô:ˆð ×ÒÕ0Ñ1Ô1ð 	 °VØ×ÒÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð ×#Ò#Ñ%Ô%ˆØ×Ò˜ œ¥B¤FÑ+Ô+Ð+Ð+Ð+s   ž5µ9¼9ÂB=Â=CÃCc                 ó  — d„ }t          j        d¦  «                             dd¦  «        }|                      ||ddd¬¦  «         |                      |d ¦  «        }t          t          j        |¦  «        g¦  «        }|                      ||¦  «        }|  	                    |¦  «        }| 
                    ¦   «         D ]O\  }}|                     ¦   «         D ]5}	d|	v r/||	v r+|                      |	                     d	¦  «        d
¦  «          nŒ6ŒPd S )Nc                 ób   — t          t          | ¦  «        ¦  «        D ]}| |         }d|d d …<   Œ| S r  r…  )rz  rû   rª  s      rV   r  z?TestPrangeSpecific.test_check_alias_analysis.<locals>.test_impll  s:   € Ý�3˜q™6œ6‘]”]ð ð �Ø�a”D�Ø��!�!�!‘�ØˆHrX   r©  r  rq  ré   Tr¤  ÚdefineÚnoaliasró   )r¶   r;  r  r6  r1  r¦   r    r   rš   r/  rP  r9  rÆ   rL  )
rS   r  rz  r0  r�   rí   rQ  r´   rí  rç  s
             rV   Útest_check_alias_analysisz,TestPrangeSpecific.test_check_alias_analysisj  s*  € ð	ð 	ð 	õ
 ŒH�R‰LŒL× Ò   AÑ&Ô&ˆØ×Ò˜9 a¸
Ø*.Àdð 	ñ 	Lô 	Lð 	Là×)Ò)¨)°TÑ:Ô:ˆÝ•U”\ !‘_”_Ð%Ñ&Ô&ˆØ×-Ò-¨e°SÑ9Ô9ˆØ×!Ò! $Ñ'Ô'ˆØ—I’I‘K”Kð 	ð 	‰DˆAˆqØŸš™œð ð �à˜tÐ#Ð#¨¨T¨	¨	ð ×$Ò$ T§Z¢Z°	Ñ%:Ô%:¸AÑ>Ô>Ð>Ø�Eøøð	ð 	rX   c                 óú   — d„ }|                       t          j        ¦  «        5 }|                      |d¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         d S )Nc                 ó<   — d}t          d| d¦  «        D ]}|dz  }Œ|S rË  r|  rŒ  s      rV   r  zJTestPrangeSpecific.test_prange_raises_invalid_step_size.<locals>.test_implƒ  s0   € ØˆCÝ˜1˜a ‘^”^ð ð �Ø�q‘��ØˆJrX   r™  z4Only constant step size of 1 is supported for prange)r  r   rY  r6  rê   r  r
  rÞ  s       rV   Ú$test_prange_raises_invalid_step_sizez7TestPrangeSpecific.test_prange_raises_invalid_step_size‚  s¼   € ð	ð 	ð 	ð ×Ò�vÔ=Ñ>Ô>ð 	0À&Ø×Ò˜y¨$Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0àDˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1rà  zEskip due to issue #10203: https://github.com/numba/numba/issues/10203c           	      ó¨  — d„ }|                       |dd¬¦  «         |                      |d ¦  «        }|                      |d¦  «        }|                      |¦  «        }d}d}t	          j        |||fz  ¦  «        }t	          j        d|›d	|›d
|›�¦  «        }d}	 |j        ¦   «         D ]“\  }
}|
|j                             ¦   «         v rs| 	                    ¦   «         }t          |¦  «        D ]O\  }}|                     |¦  «        r5|                      |                     ||dz            ¦  «        ¦  «         d}	 nŒPŒ”|                      |	d¦  «         d S )Nc                  óB   — d} d}t          | ¦  «        D ]
}||dz  z  }Œ|S )NrÃ  r   r&  r|  rê  s      rV   r  zFTestPrangeSpecific.test_prange_fastmath_check_works.<locals>.test_impl“  s5   € ØˆAØˆAÝ˜1‘X”Xð ð �Ø�Q˜‘W‘��ØˆHrX   ré   Tr<  r|   z%[A-Z_0-9]?(.[0-9]+)+[.]?[i]?z)\s+%s = fmul fast double %s, 5.000000e-01z\s+z = fadd fast double z, Frâ   z'fast instruction pattern was not found.)r6  r1  rš   r/  r:  rÀ  rP  rë   rì   r9  rÀ  rN  rH  )rS   r  r0  rí   r   Ú_idÚ
recipr_strÚreciprocal_instÚ	fadd_instÚfoundr  Úkernelr<  rû   r£   s                  rV   Ú test_prange_fastmath_check_worksz3TestPrangeSpecific.test_prange_fastmath_check_worksŽ  s�  € ð
	ð 	ð 	ð 	×Ò˜9°ZØ*.ð 	ñ 	0ô 	0ð 	0à×)Ò)¨)°TÑ:Ô:ˆØ×-Ò-¨e°RÑ8Ô8ˆØ× Ò  Ñ&Ô&ˆØ-ˆØAˆ
Ýœ* Z°3¸°*Ñ%<Ñ=Ô=ˆÝ”J�JØ"% # # s s s¨C¨Cð 1ñ 2ô 2ˆ	ð
 ˆØ$˜BœH™JœJð 	ð 	‰LˆD�&à�t”|×0Ò0Ñ2Ô2Ð2Ð2Ø!×,Ò,Ñ.Ô.�Ý% hÑ/Ô/ð ð ‘D�A�qØ&×,Ò,¨QÑ/Ô/ð ØŸš¨	¯ª¸ÀÀQÁ¼Ñ(HÔ(HÑIÔIÐIØ $˜Ø˜ðøð
 	�Š˜ÐHÑIÔIÐIÐIÐIrX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 óš   — t          j        | | f¦  «        }|d         }t          | ¦  «        D ]
}|dz   ||<   Œ|                     ¦   «         S r¿  ©r¶   r;  rý   rx  )r÷   rˆ   r‡   ry  s       rV   r  z8TestPrangeSpecific.test_parfor_alias1.<locals>.test_impl´  sO   € Ý”˜!˜Q˜Ñ Ô ˆAØ�!”ˆAÝ˜1‘X”Xð ð �Ø˜1‘u��!‘�Ø—5’5‘7”7ˆNrX   r  r=  r  s     rV   Útest_parfor_alias1z%TestPrangeSpecific.test_parfor_alias1³  s/   € ð	ð 	ð 	ð 	×Ò˜9 aÑ(Ô(Ð(Ð(Ð(rX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 ó¾   — t          j        | | f¦  «        }t          | ¦  «        D ]$}||         }t          | ¦  «        D ]
}||z   ||<   ŒŒ%|                     ¦   «         S rZ   r   )r÷   rˆ   rû   r‡   ry  s        rV   r  z8TestPrangeSpecific.test_parfor_alias2.<locals>.test_impl½  si   € Ý”˜!˜Q˜Ñ Ô ˆAÝ˜1‘X”Xð ð �Ø�A”$ˆaÝ˜Q‘x”xð ð �!Ø˜1‘u��!‘�ðà—5’5‘7”7ˆNrX   r  r=  r  s     rV   Útest_parfor_alias2z%TestPrangeSpecific.test_parfor_alias2¼  s/   € ð	ð 	ð 	ð 	×Ò˜9 aÑ(Ô(Ð(Ð(Ð(rX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 óú   — t          j        | | | f¦  «        }t          | ¦  «        D ]A}||         }t          | ¦  «        D ]'}||         }t          | ¦  «        D ]}||z   |z   ||<   ŒŒ(ŒB|                     ¦   «         S rZ   r   )r÷   rˆ   rû   r‡   ry  rì  r´   s          rV   r  z8TestPrangeSpecific.test_parfor_alias3.<locals>.test_implÇ  s”   € Ý”˜!˜Q ˜Ñ#Ô#ˆAÝ˜1‘X”Xð #ð #�Ø�A”$ˆaÝ˜Q‘x”xð #ð #�!Ø�a”D�Ý˜q™œð #ð #�AØ˜Q™ ™�!�A‘$�$ð#ð#ð —5’5‘7”7ˆNrX   r  r=  r  s     rV   Útest_parfor_alias3z%TestPrangeSpecific.test_parfor_alias3Æ  s/   € ð	ð 	ð 	ð 	×Ò˜9 aÑ(Ô(Ð(Ð(Ð(rX   c                 óž   — d„ }|                       |dd¦  «        }|d         }d}|                      |t          |j        ¦  «        ¦  «         d S )Nc                 ó.   — t          |¦  «        D ]}| }Œ|S rZ   r|  )r£   rh  ry  r´   s       rV   r  z8TestPrangeSpecific.test_parfor_race_1.<locals>.test_implÓ  s#   € Ý˜1‘X”Xð ð �Ø��ØˆHrX   r  r?  r   z�Variable k used in parallel loop may be written to simultaneously by multiple workers and may result in non-deterministic or unintended results.)r6  rê   r  r×  )rS   r  rà  Úwarning_objÚexpected_msgs        rV   Útest_parfor_race_1z%TestPrangeSpecific.test_parfor_race_1Ò  sc   € ð	ð 	ð 	ð ×,Ò,¨Y¸¸BÑ?Ô?ˆØ% aÔ(ˆðFˆð 	�Š�l¥C¨Ô(;Ñ$<Ô$<Ñ=Ô=Ð=Ð=Ð=rX   c                 ó6   — d„ }|                       |¦  «         dS )až   issue 3686: if a prange has something inside it that causes
            a nested parfor to be generated and both the inner and outer
            parfor use the same call variable defined outside the parfors
            then ensure that when that call variable is pushed into the
            parfor that the call variable isn't duplicated with the same
            name resulting in a redundant type lock.
        c                  ó.  — d} t           j        }t          d¦  «        D ]3} |d¦  «        }|  |t          j        d¦  «        ¦  «        d         z  } Œ4t          d¦  «        D ]3} |d¦  «        }|  |t          j        d¦  «        ¦  «        d         z  } Œ4| S )Nr   râ   rW  ró   )r¶   Únegativerý   r;  )rª  r7  rû   Úthis_matterss       rV   r  zGTestPrangeSpecific.test_nested_parfor_push_call_vars.<locals>.test_implæ  s™   € ØˆAÝ”ˆAÝ˜1‘X”Xð (ð (�Ø ˜q ™uœu�Ø�Q�Q•r”x ‘|”|‘_”_ QÔ'Ñ'��Ý˜1‘X”Xð (ð (�Ø ˜q ™uœu�Ø�Q�Q•r”x ‘|”|‘_”_ QÔ'Ñ'��àˆHrX   Nr=  r  s     rV   Ú!test_nested_parfor_push_call_varsz4TestPrangeSpecific.test_nested_parfor_push_call_varsÞ  s-   € ð
	ð 
	ð 
	ð 	×Ò˜9Ñ%Ô%Ð%Ð%Ð%rX   c                 ó²   — d„ }d}t          j        |||f¦  «        }t          j        |t           j        ¬¦  «        }|                      |||dg¬¦  «         dS )a+   issue4903: a global is copied next to a parfor so that
            it can be inlined into the parfor and thus not have to be
            passed to the parfor (i.e., an unsupported function type).
            This global needs to be renamed in the block into which
            it is copied.
        c                 ó†  — t          j        t          |¦  «        ¦  «        }t          j        t          |¦  «        ¦  «        }t          d¦  «        D ]l}||         }t          |¦  «        D ]!}|t          j        | ||f         ¦  «        z  }Œ"t          |¦  «        D ]!}|t          j        | ||f         ¦  «        z  }Œ"Œm||fS r  )r¶   r;  rÈ   rý   rZ  )ÚzzÚtcÚlhÚlcrû   ÚntrÀ  s          rV   r  zATestPrangeSpecific.test_copy_global_for_parfor.<locals>.test_implú  s¾   € Ý”�#˜b™'œ'Ñ"Ô"ˆBÝ”�#˜b™'œ'Ñ"Ô"ˆBÝ˜1‘X”Xð +ð +�Ø˜”U�Ý˜r™œð +ð +�AØ�"œ&  A q D¤Ñ*Ô*Ñ*�B�BÝ˜r™œð +ð +�AØ�"œ&  A q D¤Ñ*Ô*Ñ*�B�Bð+à�r�6ˆMrX   ró   r"  r   ©r'  N)r¶   r  r  r6  )rS   r  r>  r  r  s        rV   Útest_copy_global_for_parforz.TestPrangeSpecific.test_copy_global_for_parforó  sh   € ð		ð 		ð 		ð ˆÝŒW�a˜˜A�YÑÔˆÝŒW�Q�bœgÐ&Ñ&Ô&ˆØ×Ò˜9 b¨"¸a¸SÐÑAÔAÐAÐAÐArX   c                 ó8   — d„ }|                       |d¦  «         d S )Nc                 óx   — d}t           j        }t          d¦  «        D ]} |d¦  «        }| || ¦  «        z  }Œ|S )Nr   râ   rW  )r¶   r  rý   )r÷   rª  r7  rû   r  s        rV   r  zGTestPrangeSpecific.test_multiple_call_getattr_object.<locals>.test_impl  sH   € ØˆAÝ”ˆAÝ˜1‘X”Xð ð �Ø ˜q ™vœv�Ø�Q�Q�q‘T”T‘	��àˆHrX   rW  r=  r  s     rV   Ú!test_multiple_call_getattr_objectz4TestPrangeSpecific.test_multiple_call_getattr_object
  s/   € ð	ð 	ð 	ð 	×Ò˜9 cÑ*Ô*Ð*Ð*Ð*rX   c                 óÎ  — d„ }t          j        ddt          fdt          fg¬¦  «        }t          j        ddt          fdt          fg¬¦  «        }t          j        ddt          fdt          fg¬¦  «        }|                     t           j        ¦  «        }|                     t           j        ¦  «        }|                     t           j        ¦  «        }t           ||¦  «        ¦  «        }t           t          |¦  «        |¦  «        ¦  «        }	t          |d¬¦  «        }
t           |
|¦  «        ¦  «        }|                      ||	¦  «         |                      ||¦  «         d S )Nc                 óX   — t          t          | ¦  «        ¦  «        D ]}d| j        |<   Œ| S r4  )rý   rÈ   r£   )r÷   rû   s     rV   r  zHTestPrangeSpecific.test_argument_alias_recarray_field.<locals>.test_impl  s/   € Ý�3˜q™6œ6‘]”]ð ð �Ø�”�A‘�ØˆHrX   r  r£   rh  r"  Tr“   )	r¶   r;  r2  rø  ÚviewÚrecarrayr¾   r   rÆ   )rS   r  ÚX1ÚX2ÚX3rD  rE  Úv3Ú
python_resÚnjit_resÚpa_funcÚpa_ress               rV   Ú"test_argument_alias_recarray_fieldz5TestPrangeSpecific.test_argument_alias_recarray_field  s<  € ð	ð 	ð 	õ ŒX�b #¥u °µS¨zÐ <Ð=Ñ=Ô=ˆÝŒX�b #¥u °µS¨zÐ <Ð=Ñ=Ô=ˆÝŒX�b #¥u °µS¨zÐ <Ð=Ñ=Ô=ˆØ�WŠW•R”[Ñ!Ô!ˆØ�WŠW•R”[Ñ!Ô!ˆØ�WŠW•R”[Ñ!Ô!ˆõ ˜)˜) B™-œ-Ñ(Ô(ˆ
Ý˜�˜Y™œ¨Ñ+Ô+Ñ,Ô,ˆÝ�y¨4Ð0Ñ0Ô0ˆÝ�g�g˜b‘k”kÑ"Ô"ˆØ×Ò˜ XÑ.Ô.Ð.Ø×Ò˜ VÑ,Ô,Ð,Ð,Ð,rX   c                 ó  ‡— t           d„ ¦   «         Šˆfd„} |d¦  «        } t          |¦  «        d¦  «        }t          |d¬¦  «        } |d¦  «        }|                      ||¦  «         |                      ||¦  «         dS )zº issue3699: test that mutable variable to call in loop
            is not hoisted.  The call in test_impl forces a manual
            check here rather than using prange_tester.
        c                 óV   — | d         }| d         dz   }|                       |¦  «         |S )z£ If the variable X is hoisted in the test_impl prange
                then subsequent list_check calls would return increasing
                values.
            rI   râ   )r¸   )ro  r&  r‡   s      rV   Ú
list_checkz>TestPrangeSpecific.test_mutable_list_param.<locals>.list_check0  s.   € ð �B”%ˆCØ�"”˜‘	ˆAØ�HŠH�Q‰KŒKˆKØˆJrX   c                 óH   •— t          | ¦  «        D ]}dg} ‰|¦  «        }Œ|S rö  r¹  )r÷   rû   ro  r‡   r-  s       €rV   r  z=TestPrangeSpecific.test_mutable_list_param.<locals>.test_impl:  s3   ø€ Ý˜A‘Y”Yð "ð "�Ø�E�Ø�J˜q‘M”M��ØˆHrX   r  Tr“   N©r   rÆ   )rS   r  r&  r'  r(  r)  r-  s         @rV   Útest_mutable_list_paramz*TestPrangeSpecific.test_mutable_list_param+  s¬   ø€ õ
 
ð	ð 	ñ 
Œð	ð	ð 	ð 	ð 	ð 	ð
 �Y˜r‘]”]ˆ
Ø"•4˜	‘?”? 2Ñ&Ô&ˆÝ�y¨4Ð0Ñ0Ô0ˆØ�˜‘”ˆØ×Ò˜ XÑ.Ô.Ð.Ø×Ò˜ VÑ,Ô,Ð,Ð,Ð,rX   c                 ó¬   — d„ }t          j        g d¢t          ¬¦  «        t          j        ddgt          ¬¦  «        g}|                      ||¦  «         d S )Nc                 óx   ‡ — t          j        ˆ fd„t          t          ‰ ¦  «        ¦  «        D ¦   «         ¦  «        S )Nc                 ó:   •— g | ]}t          ‰|         ¦  «        ‘ŒS r|   )rÈ   )r¢   rû   r£   s     €rV   r¤   zXTestPrangeSpecific.test_list_comprehension_prange.<locals>.test_impl.<locals>.<listcomp>I  s#   ø€ Ð>Ð>Ð>¨1�S  1¤™YœYÐ>Ð>Ð>rX   )r¶   rˆ  rý   rÈ   r8  s   `rV   r  zDTestPrangeSpecific.test_list_comprehension_prange.<locals>.test_implH  s4   ø€ Ý”8Ð>Ð>Ð>Ð>µµc¸!±f´f±´Ð>Ñ>Ô>Ñ?Ô?Ð?rX   )râ   ró   r  r"  râ   ró   )r¶   rˆ  rø  r6  r-  s      rV   Útest_list_comprehension_prangez1TestPrangeSpecific.test_list_comprehension_prangeF  s`   € ð	@ð 	@ð 	@åŒX�g�g�g¥SÐ)Ñ)Ô)­"¬(°A°a°5ÅÐ*DÑ*DÔ*DÐEˆØ×Ò˜9 aÑ(Ô(Ð(Ð(Ð(rX   c                 ó|   — d„ }t          j        dt           j        ¬¦  «        }|                      ||dd¦  «         d S )Nc                 óÄ   — t          j        | j        ¦  «        }t          | j        d         ¦  «        D ]+}| |         d         dz  }|dk    rd}|dk    rd}|||g||<   Œ,|S )Nr   g     ào@)r¶   r;  r‡  rý   )Úimager‡   rˆ   rÜ  rû   rë  Úhs          rV   r  z>TestPrangeSpecific.test_ssa_false_reduction.<locals>.test_implS  st   € Ý”H˜Uœ[Ñ)Ô)ˆEÝ˜5œ; qœ>Ñ*Ô*ð %ð %�Ø˜!”H˜Q”K %Ñ'�Ø˜’6�6Ø�AØ˜’6�6Ø�AØ˜q !˜9��a‘�ØˆLrX   rc  r"  r   )r¶   r;  r  r6  )rS   r  r7  s      rV   Útest_ssa_false_reductionz+TestPrangeSpecific.test_ssa_false_reductionM  sI   € ð		ð 		ð 		õ ”˜¥r¤xÐ0Ñ0Ô0ˆØ×Ò˜9 e¨Q°Ñ2Ô2Ð2Ð2Ð2rX   c                 ó6   — d„ }|                       |¦  «         d S )Nc                  ó”   — d} t          j        | t           j        ¬¦  «        }t          d¦  «        D ]}dg}d|d<   |d         ||<   Œ|S )Nr€   r"  r   râ   )r¶   rÜ  r�  rý   )r÷   r‡   r´   ro  s       rV   r  z@TestPrangeSpecific.test_list_setitem_hoisting.<locals>.test_impld  sV   € ØˆAÝ”˜¥"¤(Ð+Ñ+Ô+ˆAÝ˜1‘X”Xð ð �Ø�C�Ø��!‘Ø˜”t��!‘�ØˆHrX   r=  r  s     rV   Útest_list_setitem_hoistingz-TestPrangeSpecific.test_list_setitem_hoistinga  s-   € ð	ð 	ð 	ð 	×Ò˜9Ñ%Ô%Ð%Ð%Ð%rX   c                 óŠ   — d„ }t           j        dz   }|                      |d„ t          |¦  «        D ¦   «         dg¬¦  «         d S )Nc                 ó  — d„ t          t          | ¦  «        ¦  «        D ¦   «         }t          t          | ¦  «        ¦  «        D ]0}| |         }t          j        d¦  «        }||d<   | |         |f||<   Œ1|d         d         d         S )Nc                 óŠ   — g | ]@}t          j        t          j        t          j        ¬ ¦  «        t          j        d¦  «        f‘ŒAS ©©Úkey_typeÚ
value_typerâ   ©r   rÜ  r   r�  r’  r¶   r;  ©r¢   rJ   s     rV   r¤   zMTestPrangeSpecific.test_tuple_hoisting.<locals>.test_impl.<locals>.<listcomp>r  ó>   € Ð}Ð}Ð}Ðef�œ
­E¬KÅEÄMÐRÑRÔRÕTVÔT\Ð]^ÑT_ÔT_Ð`Ð}Ð}Ð}rX   râ   r   )rý   rÈ   r¶   r;  ©ÚinputsÚoutputsrû   rh  rÝ  s        rV   r  z9TestPrangeSpecific.test_tuple_hoisting.<locals>.test_implq  s‹   € Ø}Ð}ÕjoÕpsÐtzÑp{Ôp{Ñj|Ôj|Ð}Ñ}Ô}ˆGÝ�3˜v™;œ;Ñ'Ô'ð .ð .�Ø˜1”I�Ý”h˜q‘k”k�Ø��A‘Ø$ Qœi¨Ð-�˜‘
�
Ø˜1”:˜a”= Ô#Ð#rX   râ   c                 ób   — g | ],}t          j        t          j        t          j        ¬ ¦  «        ‘Œ-S ©rA  ©r   rÜ  r   r�  r’  r®  s     rV   r¤   z:TestPrangeSpecific.test_tuple_hoisting.<locals>.<listcomp>{  ó.   € Ð&tÐ&tÐ&tÐfg¥t¤z½5¼;ÕSXÔS`Ð'aÑ'aÔ'aÐ&tÐ&tÐ&trX   r  ©r   r  r6  rý   ©rS   r  r‹  s      rV   Útest_tuple_hoistingz&TestPrangeSpecific.test_tuple_hoistingo  óu   € ð	$ð 	$ð 	$õ Ô$ qÑ(ˆØ×Ò˜9Ð&tÐ&tÕkpÐqrÑksÔksÐ&tÑ&tÔ&tð  GHð  FIÐñ  	Jô  	Jð  	Jð  	Jð  	JrX   c                 óŠ   — d„ }t           j        dz   }|                      |d„ t          |¦  «        D ¦   «         dg¬¦  «         d S )Nc                 ó(  — d„ t          t          | ¦  «        ¦  «        D ¦   «         }t          t          | ¦  «        ¦  «        D ]<}| |         }t          j        d¦  «        }||d<   t	          | |         |¦  «        ||<   Œ=|d         d         d         S )Nc                 óŠ   — g | ]@}t          j        t          j        t          j        ¬ ¦  «        t          j        d¦  «        f‘ŒAS r@  rD  rE  s     rV   r¤   zLTestPrangeSpecific.test_call_hoisting.<locals>.test_impl.<locals>.<listcomp>€  rF  rX   râ   r   )rý   rÈ   r¶   r;  rÒ  rG  s        rV   r  z8TestPrangeSpecific.test_call_hoisting.<locals>.test_impl  s’   € Ø}Ð}ÕjoÕpsÐtzÑp{Ôp{Ñj|Ôj|Ð}Ñ}Ô}ˆGÝ�3˜v™;œ;Ñ'Ô'ð Hð H�Ø˜1”I�Ý”h˜q‘k”k�Ø��A‘Ý7¸¸q¼	À3ÑGÔG�˜‘
�
Ø˜1”:˜a”= Ô#Ð#rX   râ   c                 ób   — g | ],}t          j        t          j        t          j        ¬ ¦  «        ‘Œ-S rK  rL  r®  s     rV   r¤   z9TestPrangeSpecific.test_call_hoisting.<locals>.<listcomp>‰  rM  rX   r  rN  rO  s      rV   Útest_call_hoistingz%TestPrangeSpecific.test_call_hoisting}  rQ  rX   c                 ó®   — t          j        dt           j        fg¦  «        }d„ }d„ }|                      |t          j        d|¬¦  «        |g¬¦  «         d S )Nrì  c                 ó@   — t          d¦  «        D ]}d| |         d<   Œd S )Nrâ   rì  r|  )Ústatesrû   s     rV   r  z?TestPrangeSpecific.test_record_array_setitem.<locals>.test_impl�  s2   € Ý˜1‘X”Xð %ð %�Ø#$��q”	˜%Ñ Ð ð%ð %rX   c                 óF   — | d         d         |d         d         k    sJ ‚d S )Nr   rì  r|   r†   s     rV   r€  z>TestPrangeSpecific.test_record_array_setitem.<locals>.comparer“  s)   € Ø�Q”4˜”; ! A¤$ u¤+Ò-Ð-Ð-Ð-Ð-Ð-rX   râ   )r‡  r#  r‚  )r¶   r#  r  r6  r;  )rS   Ústate_dtyper  r€  s       rV   Útest_record_array_setitemz,TestPrangeSpecific.test_record_array_setitem‹  s{   € å”h ­¬Ð 1Ð2Ñ3Ô3ˆð	%ð 	%ð 	%ð	/ð 	/ð 	/ð 	×Ò˜9Ýœ8¨!°;Ð?Ñ?Ô?Ø/7¨jð 	ñ 	:ô 	:ð 	:ð 	:ð 	:rX   c                 ó²   — t          j        dt           j        fg¦  «        }d„ }t          j        d|¬¦  «        }d„ }|                      |||g¬¦  «         d S )Nr£   c                 ó^   — | j         }t          | j         ¦  «        D ]}d|z   | d         |<   Œ| S )Nr_  r£   )rá  rý   )rY  r÷   rû   s      rV   r  zKTestPrangeSpecific.test_record_array_setitem_yield_array.<locals>.test_impl�  s:   € Ø”ˆAÝ˜6œ;Ñ'Ô'ð 'ð '�Ø!" Q¡��s”˜A‘�ØˆMrX   r  r"  c                 óF   — t           j                             | |¦  «         d S rZ   r~  r†   s     rV   r€  zJTestPrangeSpecific.test_record_array_setitem_yield_array.<locals>.comparer¥  r�  rX   r‚  )r¶   r#  rŽ  r;  r6  )rS   r[  r  rY  r€  s        rV   Ú%test_record_array_setitem_yield_arrayz8TestPrangeSpecific.test_record_array_setitem_yield_arrayš  s�   € Ý”h ¥b¤g Ð/Ñ0Ô0ˆð	ð 	ð 	õ ”˜" KÐ0Ñ0Ô0ˆð	*ð 	*ð 	*ð 	×Ò˜9Ø!Ø/7¨jð 	ñ 	:ô 	:ð 	:ð 	:ð 	:rX   c                 ó:   — d„ }|                       |dd¦  «         d S )Nc                 óÒ   — t          j        | f¦  «        }|dk    r#t          | ¦  «        D ]}||xx         dz  cc<   Œn"t          | ¦  «        D ]}||xx         dz  cc<   Œ|d         S )Nrâ   ró   r   r;  )rá  Úcaser	  rû   s       rV   r  z4TestPrangeSpecific.test_issue7501.<locals>.test_impl­  s…   € Ý”X˜t˜gÑ&Ô&ˆFØ�qŠyˆyÝ˜t™œð #ð #�AØ˜1�I�I”I ‘N�I�I‘I�Ið#õ ˜t™œð #ð #�AØ˜1�I�I”I ‘N�I�I‘I�IØ˜!”9ÐrX   r  râ   r=  r  s     rV   Útest_issue7501z!TestPrangeSpecific.test_issue7501¬  s1   € ð	ð 	ð 	ð 	×Ò˜9 a¨Ñ+Ô+Ð+Ð+Ð+rX   c                 óz   — d„ }d}t           j                             |¦  «        }|                      ||¦  «         d S )Nc                 ó   — d}t          j        g d¢¦  «        }|j        d         }| j        d         }d}t          |¦  «        D ]‰}| |         }||z
  dz   d|dz  z  z  }t          j        |¦  «        }	||	t          j        ||z  ¦  «        z
  t          j        t          j        t          j        ||	z
  ¦  «        ¦  «        ¦  «        z   z  }ŒŠ|S )NrV  )rÃ  r&  rL  r   ró   )r¶   rˆ  r‡  rý   r­  rX  rx  rZ  )
ro  rˆ   Úpointsr‹  r÷   Úexpsrû   rÊ  rÏ  r>  s
             rV   r  z6TestPrangeSpecific.test_kde_example.<locals>.test_implº  sÉ   € àˆAÝ”XÐ.Ð.Ð.Ñ/Ô/ˆFØ”˜Q”ˆAØ”˜”
ˆAØˆDÝ˜1‘X”Xð Jð J�Ø�a”D�Ø˜6‘z A‘oÐ%¨!¨a°©d©(Ñ3�Ý”F˜1‘I”I�Ø˜�BœF 1 q¡5™MœMÑ)­B¬Fµ2´6½"¼&ÀÀQÁ¹-¼-Ñ3HÔ3HÑ,IÔ,IÑIÑI��ØˆKrX   rÃ  )r¶   r‰  rŠ  r6  )rS   r  r÷   ro  s       rV   Útest_kde_examplez#TestPrangeSpecific.test_kde_example¹  sG   € ð	ð 	ð 	ð ˆÝŒI�NŠN˜1ÑÔˆØ×Ò˜9 aÑ(Ô(Ð(Ð(Ð(rX   c                 ó`   — d„ }t          j        d¦  «        }|                      ||¦  «         d S )Nc                 óÂ   — t          j        | ¦  «        }t          j        | ¦  «        }t          t	          | ¦  «        ¦  «        D ]}|                     ¦   «         ||<   Œ|S rZ   )r¶   r³  rø  rý   rÈ   rx  )r£   rz  r  rû   s       rV   r  z4TestPrangeSpecific.test_issue7578.<locals>.test_implÎ  sQ   € Ý”˜aÑ Ô ˆAÝ”&˜‘)”)ˆCå�3˜q™6œ6‘]”]ð !ð !�Ø—w’w‘y”y��!‘�àˆHrX   rN  )r¶   rþ  r6  r-  s      rV   Útest_issue7578z!TestPrangeSpecific.test_issue7578Ì  s<   € ð	ð 	ð 	õ ŒI�c‰NŒNˆØ×Ò˜9 aÑ(Ô(Ð(Ð(Ð(rX   N)#rw   rN   rx   rT  rÚ  rß  rã  ræ  r=   rì  rñ  rô  rn  rÐ  rý  r  r  r  r  r  r  r  r*  r0  r4  r9  r<  rP  rV  r\  r`  rd  ri  r9   rl  r|   rX   rV   rÔ  rÔ    sð  € € € € € à>Ð>ð	)ð 	)ð 	)ð2ð 2ð 2ð&ð &ð &ð&ð &ð &ð ð,ð ,ñ „]ð,ð0ð ð ð0
2ð 
2ð 
2ð €X„]ÐZÑ[Ô[ð"Jð "Jñ \Ô[ð"JðH)ð )ð )ð)ð )ð )ð
)ð 
)ð 
)ð
>ð 
>ð 
>ð&ð &ð &ð*Bð Bð Bð.	+ð 	+ð 	+ð-ð -ð -ð,-ð -ð -ð6)ð )ð )ð3ð 3ð 3ð(&ð &ð &ðJð Jð JðJð Jð Jð:ð :ð :ð:ð :ð :ð$,ð ,ð ,ð)ð )ð )ð& ð)ð )ñ Ôð)ð )ð )rX   rÔ  c                   óX   — 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S )ÚTestParforChunksizingz:
    Tests chunksize handling in ParallelAccelerator.
    Fc                 ó$   — t          d¦  «         d S rË  ©r   r\   s    rV   ÚsetUpzTestParforChunksizing.setUpá  ó   € Ý˜qÑ!Ô!Ð!Ð!Ð!rX   c                 ó$   — t          d¦  «         d S rË  rp  r\   s    rV   ÚtearDownzTestParforChunksizing.tearDownä  rr  rX   c                 ó  — |                       t          ¦   «         d¦  «         t          d¦  «         |                       t          ¦   «         d¦  «         t          d¦  «         |                       t          ¦   «         d¦  «         d S ©Nr   rq  )rÆ   r   r   r\   s    rV   Ú$test_python_parallel_chunksize_basicz:TestParforChunksizing.test_python_parallel_chunksize_basicç  s{   € à×ÒÕ/Ñ1Ô1°1Ñ5Ô5Ð5Ý˜qÑ!Ô!Ð!Ø×ÒÕ/Ñ1Ô1°1Ñ5Ô5Ð5Ý˜qÑ!Ô!Ð!Ø×ÒÕ/Ñ1Ô1°1Ñ5Ô5Ð5Ð5Ð5rX   c                 ó   — |                       t          ¦   «         d¦  «         t          d¦  «        5  |                       t          ¦   «         d¦  «         d d d ¦  «         n# 1 swxY w Y   |                       t          ¦   «         d¦  «         d S rv  )rÆ   r   r   r\   s    rV   Útest_python_with_chunksizez0TestParforChunksizing.test_python_with_chunksizeï  sÂ   € à×ÒÕ/Ñ1Ô1°1Ñ5Ô5Ð5Ý Ñ"Ô"ð 	:ð 	:Ø×ÒÕ3Ñ5Ô5°qÑ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:à×ÒÕ/Ñ1Ô1°1Ñ5Ô5Ð5Ð5Ð5s   ²#A!Á!A%Á(A%c                 ó&  — t           d„ ¦   «         }t           d„ ¦   «         }|                       |¦   «         d¦  «          |d¦  «         |                       |¦   «         d¦  «          |d¦  «         |                       |¦   «         d¦  «         d S )Nc                  ó   — t          ¦   «         S rZ   )r   r|   rX   rV   Úget_cszHTestParforChunksizing.test_njit_parallel_chunksize_basic.<locals>.get_csø  s   € å)Ñ+Ô+Ð+rX   c                 ó    — t          | ¦  «        S rZ   rp  r8  s    rV   Úset_cszHTestParforChunksizing.test_njit_parallel_chunksize_basic.<locals>.set_csü  s   € å)¨!Ñ,Ô,Ð,rX   r   rq  r/  )rS   r|  r~  s      rV   Ú"test_njit_parallel_chunksize_basicz8TestParforChunksizing.test_njit_parallel_chunksize_basicö  s¬   € å	ð	,ð 	,ñ 
Œð	,õ 
ð	-ð 	-ñ 
Œð	-ð 	×Ò˜˜™œ 1Ñ%Ô%Ð%Øˆˆq‰	Œ	ˆ	Ø×Ò˜˜™œ 1Ñ%Ô%Ð%Øˆˆq‰	Œ	ˆ	Ø×Ò˜˜™œ 1Ñ%Ô%Ð%Ð%Ð%rX   c                 óÈ   — t           d„ ¦   «         } |d¦  «        \  }}}|                      |d¦  «         |                      |d¦  «         |                      |d¦  «         d S )Nc                 ó®   — t          ¦   «         }t          d¦  «        5  t          ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          ¦   «         }|||fS )Nrq  )r   r   )r£   Úcs1Úcs2Úcs3s       rV   r  zATestParforChunksizing.test_njit_with_chunksize.<locals>.test_impl  s’   € å(Ñ*Ô*ˆCÝ# AÑ&Ô&ð /ð /Ý,Ñ.Ô.�ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /å(Ñ*Ô*ˆCØ˜˜S�=Ð s   ž9¹=Á =rq  r   r/  )rS   r  r‚  rƒ  r„  s        rV   Útest_njit_with_chunksizez.TestParforChunksizing.test_njit_with_chunksize  sx   € å	ð	!ð 	!ñ 
Œð	!ð "˜	 !™œ‰ˆˆS�#à×Ò˜˜aÑ Ô Ð Ø×Ò˜˜aÑ Ô Ð Ø×Ò˜˜aÑ Ô Ð Ð Ð rX   c                 ó6  — t          d¬¦  «        d„ ¦   «         }dD ]|}t          d¦  «        D ]j} ||dz   |¦  «        \  }}|                      t          j        |dk    ¦  «        ¦  «         |                      t          j        |dk    ¦  «        ¦  «         ŒkŒ}d	S )
z© Test that all the iterations get run if you set the
            chunksize.  Also check that the chunksize that each
            worker thread sees has been reset to 0. Tr“   c                 ó  — t          j        |¦  «        }t          j        |d¦  «        }t          j        | ¦  «        5  t          j        |¦  «        D ]}t          j        ¦   «         ||<   d||<   Œ	 d d d ¦  «         n# 1 swxY w Y   ||fS )Nióÿÿÿrÿ  )r¶   r;  rS  r    r   r   r   )Úcsr÷   ró  Úinner_csrû   s        rV   r  zLTestParforChunksizing.test_all_iterations_reset_chunksize.<locals>.test_impl  sÉ   € å”(˜1‘+”+ˆCÝ”w˜q #‘”ˆHÝÔ)¨"Ñ-Ô-ð  ð  Ýœ a™œð  ð  �AÝ"'Ô">Ñ"@Ô"@�H˜Q‘KØ�C˜‘F�Fð ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð ˜�=Ð s   ¾3A>Á>BÂB)iè  iå  i¯  iÁ  rg  râ   rÿ  r   N)r   rý   rH  r¶   Úall)rS   r  ry  rû   ró  r‰  s         rV   Ú#test_all_iterations_reset_chunksizez9TestParforChunksizing.test_all_iterations_reset_chunksize  sº   € õ
 
�tÐ	Ñ	Ô	ð	!ð 	!ñ 
Ô	ð	!ð 'ð 	7ð 	7ˆAÝ˜2‘Y”Yð 7ð 7�Ø ) 	¨!¨A©#¨qÑ 1Ô 1‘��XØ—’¥¤ s¨b¢yÑ 1Ô 1Ñ2Ô2Ð2Ø—’¥¤ x°1¢}Ñ 5Ô 5Ñ6Ô6Ð6Ð6ð7ð	7ð 	7rX   c                 óò   — |                       t          ¦  «        5 }t          d„ ¦   «         } |¦   «          d d d ¦  «         n# 1 swxY w Y   d}|                      |t	          |j        ¦  «        ¦  «         d S )Nc                  ó$   — t          d¦  «         d S )NrI   rp  r|   rX   rV   Úneg_testzMTestParforChunksizing.test_njit_parallel_chunksize_negative.<locals>.neg_test1  s   € å& rÑ*Ô*Ð*Ð*Ð*rX   ú/chunksize must be greater than or equal to zero)r  r¿   r   rê   r  r
  )rS   rZ  rŽ  rï   s       rV   Ú%test_njit_parallel_chunksize_negativez;TestParforChunksizing.test_njit_parallel_chunksize_negative.  s»   € à×Ò�zÑ*Ô*ð 	¨fÝð+ð +ñ ŒTð+ð ˆH‰JŒJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð @ˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   ›AÁAÁ	Ac                 óÜ   — |                       t          ¦  «        5 }t          d¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t	          |j        ¦  «        ¦  «         d S )NrI   r�  )r  r¿   r   rê   r  r
  ©rS   rZ  rï   s      rV   Ú'test_python_parallel_chunksize_negativez=TestParforChunksizing.test_python_parallel_chunksize_negative:  s£   € à×Ò�zÑ*Ô*ð 	'¨fÝ" 2Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð @ˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1ó   ›7·;¾;c                 óü   — |                       t          j        ¦  «        5 }t          d„ ¦   «         } |¦   «          d d d ¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         d S )Nc                  ó$   — t          d¦  «         d S )NÚinvalid_typerp  r|   rX   rV   rÞ   zMTestParforChunksizing.test_njit_parallel_chunksize_invalid_type.<locals>.implD  s   € å& ~Ñ6Ô6Ð6Ð6Ð6rX   ú)The parallel chunksize must be an integer)r  r   ÚTypingErrorr   rê   r  r
  )rS   rZ  rÞ   rï   s       rV   Ú)test_njit_parallel_chunksize_invalid_typez?TestParforChunksizing.test_njit_parallel_chunksize_invalid_typeB  s½   € Ø×Ò�vÔ1Ñ2Ô2ð 	°fÝð7ð 7ñ ŒTð7ð ˆD‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð :ˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s    AÁAÁAc                 óÜ   — |                       t          ¦  «        5 }t          d¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t	          |j        ¦  «        ¦  «         d S )Nr—  r˜  )r  Ú	TypeErrorr   rê   r  r
  r’  s      rV   Ú+test_python_parallel_chunksize_invalid_typezATestParforChunksizing.test_python_parallel_chunksize_invalid_typeM  s¢   € Ø×Ò�yÑ)Ô)ð 	3¨VÝ" >Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð :ˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1r”  N)rw   rN   rx   rT  ry   rq  rt  rw  ry  r  r…  r‹  r�  r“  rš  r�  r|   rX   rV   rn  rn  Ú  sË   € € € € € ðð ð "Ðð"ð "ð "ð"ð "ð "ð6ð 6ð 6ð6ð 6ð 6ð&ð &ð &ð !ð !ð !ð 7ð 7ð 7ð0
2ð 
2ð 
2ð2ð 2ð 2ð	2ð 	2ð 	2ð2ð 2ð 2ð 2ð 2rX   rn  c                   óØ   — e Zd ZdZd„ Zeej        d„ ¦   «         ¦   «         Ze ej        ddi¬¦  «        d„ ¦   «         ¦   «         Z	e ej        ddi¬¦  «        d„ ¦   «         ¦   «         Z
d	S )
ÚTestParforsVectorizerFc                 óø  — |                      dd¦  «        }|                      dd¦  «        }|                      dd¦  «        }|                      dd¦  «        }||d	œ}	g }
|	                     ¦   «         D ](\  }}|
                     t          ||¦  «        ¦  «         Œ)|
d
         5  |
d         5  t	          d„ |D ¦   «         ¦  «        }|                      |d ¦  «        }|dk    r|                      ||¦  «        }n|                      ||¦  «        }|                      |¦  «        }|r•t          j
        d¦  «        }|                     |j                             ¦   «         ¦  «        }|                      t          |¦  «        d¦  «         |                      |d
         |¦  «         |                      |i ¦  «         |cd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr™   FÚcpu_namezskylake-avx512Ú
assertionsTÚcpu_featuresz-prefer-256-bit)ÚNUMBA_CPU_NAMEÚNUMBA_CPU_FEATURESr   râ   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r|   rŸ   r¡   s     rV   r¤   z8TestParforsVectorizer.get_gufunc_asm.<locals>.<listcomp>n  s    € Ð7Ð7Ð7¨Q�œ a™œÐ7Ð7Ð7rX   z%call\s+\w+\*\s+@do_scheduling_(\w+)\()rÂ   rP  r¸   r6   r¦   r1  rš   r—   r6  r:  rÀ  Úfindallrë   rì   rã   rÈ   rÆ   ÚassertNotEqual)rS   rŽ   Úschedule_typer¨   r©   r™   r¡  r¢  r£  Úenv_optsÚ	overridesr´   rí  r�   Úpfunc_vectorizablerí   ÚasmÚschedtyÚmatchess                      rV   Úget_gufunc_asmz$TestParforsVectorizer.get_gufunc_asm\  s¤  € à—:’:˜j¨%Ñ0Ô0ˆØ—:’:˜jÐ*:Ñ;Ô;ˆØ—Z’Z ¨dÑ3Ô3ˆ
ð —z’z .Ð2CÑDÔDˆà&.Ø*6ðð ˆð ˆ	Ø—N’NÑ$Ô$ð 	8ð 	8‰DˆAˆqØ×ÒÕ0°°AÑ6Ô6Ñ7Ô7Ð7Ð7à�qŒ\ð 	ð 	˜9 Qœ<ð 	ð 	ÝÐ7Ð7°$Ð7Ñ7Ô7Ñ8Ô8ˆCØ!%×!:Ò!:¸4ÀÑ!FÔ!FÐØ˜4ÒÐØ×5Ò5Ð6HÈ#ÑNÔN��à×,Ò,Ð-?ÀÑEÔE�ð ×&Ò& tÑ,Ô,ˆCàð -Ýœ*Ð%MÑNÔN�Ø!Ÿ/š/¨$¬,×*CÒ*CÑ*EÔ*EÑFÔF�Ø×'Ò'­¨G©¬°aÑ8Ô8Ð8Ø× Ò  ¨¤¨]Ñ;Ô;Ð;Ø×#Ò# C¨Ñ,Ô,Ð,àð%	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s7   Â%	G/Â.DGÆ>G/ÇG	ÇG/ÇG	ÇG/Ç/G3Ç6G3c                 ót  — d„ }t          j        d¦  «        }|                      |d|d¬¦  «        }|                      |d|d¬¦  «        }|                     ¦   «         D ]K}|                      d|v ¦  «         |                      d|v pd	|v ¦  «         |                      d
|v ¦  «         ŒL|                     ¦   «         D ]y}|                      d|v¦  «         |                      d|v¦  «         |                      d|v od	|v¦  «         |                      d|v ¦  «         |                      d
|v¦  «         ŒzdS )úÐ This checks that if fastmath is set and the underlying hardware
        is suitable, and the function supplied is amenable to fastmath based
        vectorization, that the vectorizer actually runs.
        c                 óz   — t          | ¦  «        }d}t          |¦  «        D ]}|t          j        |¦  «        z  }Œ|S rË  ©rÈ   rý   r¶   rY  )rz  r÷   r°  rû   s       rV   Úwill_vectorizezJTestParforsVectorizer.test_vectorizer_fastmath_asm.<locals>.will_vectorizeŒ  s@   € Ý�A‘”ˆAØˆCÝ˜1‘X”Xð "ð "�Ø•r”w˜q‘z”zÑ!��ØˆJrX   r  ré   T©r™   FÚvaddpdÚvsqrtpdÚ__svml_sqrtÚzmmÚvsqrtsdÚvaddsdN)r¶   r;  r°  rØ  rH  )rS   rµ  rÈ  Úfast_asmÚslow_asmrí  s         rV   Útest_vectorizer_fastmath_asmz2TestParforsVectorizer.test_vectorizer_fastmath_asm�  sp  € ð	ð 	ð 	õ Œh�r‰lŒlˆà×&Ò& ~°zÀ3Ø04ð 'ñ 6ô 6ˆà×&Ò& ~°zÀ3Ø05ð 'ñ 7ô 7ˆà—’Ñ"Ô"ð 	(ð 	(ˆAð �OŠO˜H¨˜MÑ*Ô*Ð*Ø�OŠO˜I¨˜NÐ@¨m¸qÐ.@ÑAÔAÐAØ�OŠO˜E Q˜JÑ'Ô'Ð'Ð'à—’Ñ"Ô"ð 	,ð 	,ˆAà�OŠO˜H¨AÐ-Ñ.Ô.Ð.Ø�OŠO˜I¨QÐ.Ñ/Ô/Ð/à�OŠO˜I¨˜NÐE¨}ÀAÐ/EÑFÔFÐFØ�OŠO˜H¨˜MÑ*Ô*Ð*à�OŠO˜E¨˜NÑ+Ô+Ð+Ð+ð	,ð 	,rX   ÚNUMBA_BOUNDSCHECKÚ0)Úenvvarsc                 óT  — d„ }d„ }t          j        d¦  «        }|                      t          j        ¦  «         |                      |d|d¬¦  «        }|                      |d|d¬¦  «        }|                     ¦   «         D ]G}|                      d|v¦  «         |                      d	|v ¦  «         |                      d
|v¦  «         ŒH|                     ¦   «         D ]K}|                      d|v pd|v ¦  «         |                      d|v ¦  «         |                      d
|v ¦  «         ŒLdS )r²  c                 ó†   — t          | ¦  «        }t          | d¦  «        D ]}t          j        | |         ¦  «        | |<   Œ | S rË  r´  ©rz  r÷   rû   s      rV   Úwill_not_vectorizezTTestParforsVectorizer.test_unsigned_refusal_to_vectorize.<locals>.will_not_vectorize²  sB   € Ý�A‘”ˆAÝ˜A˜2˜q‘\”\ð %ð %�Ý”w˜q œt‘}”}��!‘�ØˆHrX   c                 ó‚   — t          | ¦  «        }t          |¦  «        D ]}t          j        | |         ¦  «        | |<   Œ | S rZ   r´  rÅ  s      rV   rµ  zPTestParforsVectorizer.test_unsigned_refusal_to_vectorize.<locals>.will_vectorize¸  s>   € Ý�A‘”ˆAÝ˜1‘X”Xð %ð %�Ý”w˜q œt‘}”}��!‘�ØˆHrX   r  rè   Tr¶  ré   r¸  r»  rº  r¹  ÚvmovupdN)r¶   r;  r  r   ÚBOUNDSCHECKr°  rØ  rH  )rS   rÆ  rµ  rÈ  Ú	novec_asmÚvec_asmrí  s          rV   Ú"test_unsigned_refusal_to_vectorizez8TestParforsVectorizer.test_unsigned_refusal_to_vectorizeª  sh  € ð	ð 	ð 	ð	ð 	ð 	õ Œh�r‰lŒlˆð 	×Ò�Ô+Ñ,Ô,Ð,Ø×'Ò'Ð(:¸HÀcØ15ð (ñ 7ô 7ˆ	ð ×%Ò% n°jÀ#Ø15ð &ñ 7ô 7ˆð ×!Ò!Ñ#Ô#ð 	,ð 	,ˆAà�OŠO˜I¨QÐ.Ñ/Ô/Ð/à�OŠO˜I¨˜NÑ+Ô+Ð+à�OŠO˜E¨˜NÑ+Ô+Ð+Ð+à—’Ñ!Ô!ð 	(ð 	(ˆAð �OŠO˜I¨˜NÐ@¨m¸qÐ.@ÑAÔAÐAØ�OŠO˜I¨˜NÑ+Ô+Ð+Ø�OŠO˜E Q˜JÑ'Ô'Ð'Ð'ð	(ð 	(rX   c                 óª  — d„ }d„ }|                       t          j        ¦  «         |                      |dd¬¦  «        }|                      |dd¬¦  «        }d„ }|                     ¦   «         D ]\  }} ||¦  «        } |                     ¦   «         D ]\  }} ||¦  «        }	 dd	lm}
 |                      t          |¦  «        t          |	¦  «        ¦  «         t          ||	¦  «        D ]i\  }}||k    rŒ |
d
„ ||¦  «        }| 
                    ¦   «         }|D ]8}|d         dk    r*|                      ||d         |d         …         d¦  «         Œ9ŒjdS )zï This checks vectorization for signed vs unsigned variants of a
        trivial accumulator, the only meaningful difference should be the
        presence of signed vs. unsigned unpack instructions (for the
        induction var).
        c                  ó@   — d} d}t          |  d¦  «        D ]}||z  }Œ|S )Né   rý  r   r|  rê  s      rV   Úsigned_variantzMTestParforsVectorizer.test_signed_vs_unsigned_vec_asm.<locals>.signed_variantá  s5   € ØˆAØˆAÝ˜A˜2˜q‘\”\ð ð �Ø�Q‘��ØˆHrX   c                  ó<   — d} d}t          | ¦  «        D ]}||z  }Œ|S )NrÏ  rý  r|  rê  s      rV   Úunsigned_variantzOTestParforsVectorizer.test_signed_vs_unsigned_vec_asm.<locals>.unsigned_variantè  s1   € ØˆAØˆAÝ˜1‘X”Xð ð �Ø�Q‘��ØˆHrX   rè   Tr¶  ré   c                 óD  — g }|                       ¦   «         D ]ˆ}|                     ¦   «         }|dk    rl|                     d¦  «        sW|                     d¦  «        sB|                     d¦  «        s-d|v s)|                     t	          j        dd|¦  «        ¦  «         Œ‰|S )NÚ rH   rJ   ú"r)  z[	])r9  ÚstripÚ
startswithr¸   r:  Úsub)r­  r°  r£   Úspds       rV   Ústrip_instrszKTestParforsVectorizer.test_signed_vs_unsigned_vec_asm.<locals>.strip_instrsö  s¤   € ØˆCØ—^’^Ñ%Ô%ð <ð <�Ø—g’g‘i”i�ð ˜"’9�9 c§n¢n°SÑ&9Ô&9�9Ø(+¯ª°sÑ(;Ô(;ð à(+¯ª°sÑ(;Ô(;ð ð )@À3Ð(FÐ(FØŸ
š
¥2¤6¨&°"°cÑ#:Ô#:Ñ;Ô;Ð;øØˆJrX   r   )ÚSequenceMatcherc                 ó   — | dk    S )Nú	r|   r8  s    rV   rä  zGTestParforsVectorizer.test_signed_vs_unsigned_vec_asm.<locals>.<lambda>  s
   €   d¢€ rX   Úinsertra  rI   r   N)r  r   rÉ  r°  rP  ÚdifflibrÛ  rÆ   rÈ   rÉ   Úget_opcodes)rS   rÐ  rÒ  Ú
signed_asmÚunsigned_asmrÚ  r´   rí  Úsigned_instrÚunsigned_instrÚsmr‡   rˆ   r¼  rJ  rM  s                   rV   Útest_signed_vs_unsigned_vec_asmz5TestParforsVectorizer.test_signed_vs_unsigned_vec_asm×  sÎ  € ð	ð 	ð 	ð	ð 	ð 	ð 	×Ò�Ô+Ñ,Ô,Ð,Ø×(Ò(¨¸Ø59ð )ñ ;ô ;ˆ
à×*Ò*Ð+;¸ZØ59ð +ñ ;ô ;ˆð	ð 	ð 	ð ×$Ò$Ñ&Ô&ð 	ð 	‰DˆAˆqØ'˜<¨™?œ?ˆLØà ×&Ò&Ñ(Ô(ð 	ð 	‰DˆAˆqØ)˜\¨!™_œ_ˆNØà1Ð1Ð1Ð1Ð1Ð1ð 	×Ò�˜\Ñ*Ô*­C°Ñ,?Ô,?Ñ@Ô@Ð@Ý˜ nÑ5Ô5ð 	@ð 	@‰DˆAˆqØ�AŠvˆvØà�BÐ*Ð*¨A¨qÑ1Ô1�Ø—m’m‘o”o�Øð @ð @�BØ˜!”u Ò(Ð(Ø×(Ò(¨¨2¨b¬6°"°R´&¨=Ô)9¸3Ñ?Ô?Ð?øð@ð	@ð 	@rX   N)rw   rN   rx   ry   r°  r7   r3   Úrun_test_in_subprocessr¿  rÌ  ræ  r|   rX   rV   rŸ  rŸ  U  sØ   € € € € € ð
 "Ðð#ð #ð #ðJ ØÔ$ð%,ð %,ñ %Ô$ñ „Zð%,ðN Ø$€XÔ$Ð.AÀ3Ð-GÐHÑHÔHð)(ð )(ñ IÔHñ „Zð)(ðV ð %€XÔ$Ð.AÀ3Ð-GÐHÑHÔHð=@ð =@ñ IÔHñ „Zð=@ð =@ð =@rX   rŸ  c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú TestParforReductionSetNumThreadszCTest execution correctness on reductions with set_num_threads.
    c                 óÚ   ‡‡— t           j        }d|z  Š|dz
  Št          d¬¦  «        ˆˆfd„¦   «         }|                     ‰¦  «        } |‰¦  «        }|                      ||¦  «         d S )Nró   râ   Tr“   c                 ó¢   •— d}t          | ¦  «         t          ‰¦  «        D ],}d|‰z  z   }t          |¦  «         t          ¦   «         }||z  }Œ-|S r¿  ©r   r   r   ©Únthreadsr°  rû   Ú
local_maskÚgntrš  Úmasks        €€rV   Úudtz6TestParforReductionSetNumThreads.test_add.<locals>.udt$  óa   ø€ àˆCÝ˜HÑ%Ô%Ð%Ý˜A‘Y”Yð ð �Ø  T¡™\�
Ý 
Ñ+Ô+Ð+Ý%Ñ'Ô'�Ø�s‘
��ØˆJrX   ©r   r  r   rÿ  r…  ©rS   r‹  rò  Úexpectr‰  rš  rñ  s        @@rV   Útest_addz)TestParforReductionSetNumThreads.test_add  óŽ   øø€ ÝÔ$ˆØ�‰EˆØ�1‰uˆå	�tÐ	Ñ	Ô	ð	ð 	ð 	ð 	ð 	ñ 
Ô	ð	ð —’˜TÑ"Ô"ˆØˆc�$‰iŒiˆØ×Ò ¨Ñ,Ô,Ð,Ð,Ð,rX   c                 óö   ‡‡— t          dt          j        ¦  «        }d|z  Š|dz
  Št          d¬¦  «        ˆˆfd„¦   «         }|                     ‰¦  «        } |‰¦  «        }|                      ||¦  «         d S )Nr  ró   râ   Tr“   c                 ó¢   •— d}t          | ¦  «         t          ‰¦  «        D ],}d|‰z  z   }t          |¦  «         t          ¦   «         }||z  }Œ-|S r  rì  rí  s        €€rV   rò  z6TestParforReductionSetNumThreads.test_mul.<locals>.udt:  ró  rX   )r­  r   r  r   rÿ  r…  rõ  s        @@rV   Útest_mulz)TestParforReductionSetNumThreads.test_mul3  sš   øø€ õ �•6Ô+Ñ,Ô,ˆØ�‰EˆØ�1‰uˆå	�tÐ	Ñ	Ô	ð	ð 	ð 	ð 	ð 	ñ 
Ô	ð	ð —’˜TÑ"Ô"ˆØˆc�$‰iŒiˆØ×Ò ¨Ñ,Ô,Ð,Ð,Ð,rX   c                 óÚ   ‡‡— t           j        }d|z  Š|dz
  Št          d¬¦  «        ˆˆfd„¦   «         }|                     ‰¦  «        } |‰¦  «        }|                      ||¦  «         d S )Nró   râ   Tr“   c                 ó¸   •— d}t          | ¦  «         t          ‰¦  «        D ]7}d|‰z  z   }t          |¦  «         t          ¦   «         }t          ||¦  «        }Œ8|S r  )r   r   r   r®  rí  s        €€rV   rò  z6TestParforReductionSetNumThreads.test_max.<locals>.udtN  se   ø€ àˆCÝ˜HÑ%Ô%Ð%Ý˜A‘Y”Yð $ð $�Ø  T¡™\�
Ý 
Ñ+Ô+Ð+Ý%Ñ'Ô'�Ý˜#˜s‘m”m��ØˆJrX   rô  rõ  s        @@rV   r!  z)TestParforReductionSetNumThreads.test_maxI  rø  rX   N)rw   rN   rx   rT  r÷  rû  r!  r|   rX   rV   ré  ré    sK   € € € € € ðð ð-ð -ð -ð(-ð -ð -ð,-ð -ð -ð -ð -rX   ré  c                   ó>   — e Zd Z ej        ¦   «         d„ ¦   «         ZdS )ÚTestDiagnosticEnvVarc                 ó
  — dt           j        d<   t          ¦   «         5 }t          d¬¦  «        d„ ¦   «         } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }|                      d|¦  «         d S )NÚ4ÚNUMBA_PARALLEL_DIAGNOSTICSTr“   c                  óx   — d} t          j        | t           j        ¬¦  «        }t          | ¦  «        D ]}d||<   Œ|S )Nrß  r"  râ   )r¶   r;  r’  r   )r÷   rˆ   rû   s      rV   rÞ   z<TestDiagnosticEnvVar.test_diagnostics_env_var1.<locals>.impld  sB   € à�Ý”H˜a­¬
Ð3Ñ3Ô3�Ý ™œð ð �AØ�A�a‘D�DØ�rX   zParallel Accelerator Optimizing)r  r  r4   r   rå  rê   )rS   ræ  rÞ   Ú
the_outputs       rV   Útest_diagnostics_env_var1z.TestDiagnosticEnvVar.test_diagnostics_env_var1`  sË   € à14�Œ
Ð/Ñ0ÝÑÔð 		 &Ý˜4Ð Ñ Ô ðð ñ !Ô ðð ˆD‰FŒFˆFð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð —_’_Ñ&Ô&ˆ
Ø�ŠÐ7¸ÑDÔDÐDÐDÐDs   ž$AÁAÁAN)rw   rN   rx   r3   rç  r	  r|   rX   rV   rÿ  rÿ  ^  s>   € € € € € à$€XÔ$Ñ&Ô&ðEð Eñ 'Ô&ðEð Eð ErX   rÿ  Ú__main__rZ   )‘rw  r  r:  r  r»   rz   r  Ú
subprocessr   r$  rÛ  Ú	functoolsr   rÝ  r¶   Únumpy.randomr   rp  Úcollectionsr   r   r¹   Ú	itertoolsr	   r
   r  Únumba.parfors.parforr    r   r   r   r   r   r   r   r   Ú
numba.corer   r   r   r   r   r   r   r   Únumba.typedr   r   Únumba.extendingr   r   r    r!   r"   r#   Únumba.core.registryr$   Únumba.core.annotationsr%   Únumba.core.ir_utilsr&   r'   r(   r)   r*   r+   r,   Únumba.np.unsafe.ndarrayr-   ré  Únumba.core.compilerr.   r/   Únumba.core.compiler_machineryr0   r1   Únumba.core.typed_passesr2   Únumba.tests.supportr3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   Únumba.core.extendingrA   Únumba.core.bytecoderB   rC   r®  rn  rE   ro  r{   Úx86_onlyr§  r¨  r�   r‰   r‹   rj  rr  r�  r½  rä   rÉ  rÍ  rÇ  rÚ  rÙ  râ  rá  rå  rD  r�  rø  r†  r¡  rh  rq  r!  r,  rª  r¶  rÌ  rÑ  r  r8  rÒ  rÔ  rn  rŸ  ré  rÿ  rw   Úmainr|   rX   rV   ú<module>r	     s¨
  ðð €€€Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð à Ð Ð Ð ð=ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ðQð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qð Qà "Ð "Ð "Ð "Ð "Ð "Ð "Ð "ðFð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fð Fà *Ð *Ð *Ð *Ð *Ð *Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð CÐ BÐ BÐ BÐ BÐ BØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ 2Ð 2Ð 2Ð 2Ð 2Ð 2ð@ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @ð 2Ð 1Ð 1Ð 1Ð 1Ð 1Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð à €€€Ø €€€ð ð:ð :ð :ð :ð :˜ñ :ô :ñ Ôð:ðz ˆ8Œ?Ð+˜8Ô+Ñ-Ô-Ð5GÐGÈÑYÔY€àÐ ØÐ à�Ð,Ð.@ÑAÔA€ð	ð 	ð 	ð ð^ð ^ð ^ð ^ð ^�hñ ^ô ^ñ Ôð^ðB	ð ð ð ð ð ðð ð ð?ð ?ð ?ðB	ð 	ð 	ðAð Að Aðð ð ðð ð ð$ð ð ðð ð ð"Dð Dð Dð
 ð  ð  ð  ðD	ð 	ð 	ð
!ð 
!ð 
!ð 
!ð 
!�6ñ 
!ô 
!ð 
!ð ðh@ð h@ð h@ð h@ð h@�oñ h@ô h@ñ Ôðh@ðV ð'Kð 'Kð 'Kð 'Kð 'K˜oñ 'Kô 'Kñ Ôð'KðT ðVOð VOð VOð VOð VO�oñ VOô VOñ ÔðVOðr2ð 2ð 2ð 2ð 2˜Xñ 2ô 2ð 2ð, ð@ð @ð @ð @ð @�/ñ @ô @ñ Ôð@ðF" ð#ð #ð #ð #ð #�¨ñ #ô #ñ Ôð#ð4 ðf%ð f%ð f%ð f%ð f%�ñ f%ô f%ñ Ôðf%ðR	 ð";ð ";ð ";ð ";ð ";˜ñ ";ô ";ñ Ôð";ðJ ð:Mð :Mð :Mð :Mð :M˜ñ :Mô :Mñ Ôð:Mðz ðB9ð B9ð B9ð B9ð B9�oñ B9ô B9ñ ÔðB9ðJ ðzDð zDð zDð zDð zD˜_ñ zDô zDñ ÔðzDðzTð Tð Tð Tð T�_ñ Tô Tð Tðn ða1ð a1ð a1ð a1ð a1�nñ a1ô a1ñ Ôða1ðH ðð ñ Ôðð ð|)ð |)ð |)ð |)ð |)˜ñ |)ô |)ñ Ôð|)ð| ðw2ð w2ð w2ð w2ð w2˜Hñ w2ô w2ñ Ôðw2ðt Ø	ðA@ð A@ð A@ð A@ð A@˜Nñ A@ô A@ñ 
„ñ ÔðA@ðH ð?-ð ?-ð ?-ð ?-ð ?- xñ ?-ô ?-ñ Ôð?-ðD ðEð Eð Eð Eð E˜8ñ Eô Eñ ÔðEð$ ˆzÒÐØ€H„M�O„O€O€O€Oð ÐrX   