§
    2@Äjêª  ã                   ó�  — d dl Z d dlZd dlZd dlmZ d dlmZ d dl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 d dlmZmZmZmZ d dlmZmZ d dlmZmZm Z  d d	l!m"Z" d d
l#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4m Z m5Z5 d dl6m7Z7 d dl8Z8eZ9 e7dej:        fdej:        fg¦  «         G d„ de;¦  «        ¦   «         Z<dZ=dZ> G d„ de¦  «        Z? e5dd¬¦  «         G d„ de4¦  «        ¦   «         Z@ G d„ de¦  «        ZA G d„ de¦  «        ZB G d„ d e¦  «        ZC G d!„ d"e¦  «        ZDeEd#k    r e8jF        ¦   «          dS dS )$é    N)Ú
namedtuple)ÚStringIO)ÚnjitÚtypeofÚprange)ÚtypesÚtypingÚirÚbytecodeÚpostprocÚcpuÚregistryÚutils)ÚTestCaseÚtagÚskip_parfors_unsupportedÚskip_unless_scipy)ÚEquivSetÚArrayAnalysis)ÚCompilerÚFlagsÚPassManager)Úremove_dead)
ÚExtractByteCodeÚTranslateByteCodeÚ	FixupArgsÚIRProcessingÚDeadBranchPruneÚRewriteSemanticConstantsÚGenericRewritesÚWithLiftingÚ
PreserveIRÚInlineClosureLikes)ÚNopythonTypeInferenceÚAnnotateTypesÚNopythonRewritesÚIRLegalization)ÚFunctionPassr   Úregister_pass)ÚjitclassÚLÚTc                   ó   — e Zd Zd„ ZdS )ÚExampleClass3700c                 ó(   — || _         |dz   | _        d S ©Né   )r+   r,   )ÚselfÚns     úPC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_array_analysis.pyÚ__init__zExampleClass3700.__init__+   s   € ØˆŒØ�Q‘ˆŒˆˆó    N)Ú__name__Ú
__module__Ú__qualname__r5   © r6   r4   r.   r.   )   s#   € € € € € ðð ð ð ð r6   r.   )g333333ó?©é   é   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestEquivSetz'
    Test array_analysis.EquivSet.
    c                 ó–  — t          ¦   «         }|                     dd¦  «         |                      |                     dd¦  «        ¦  «         |                      |                     dd¦  «        ¦  «         |                     dd¦  «         |                      |                     dd¦  «        ¦  «         |                      |                     dd¦  «        ¦  «         |                     dd¦  «         |                      |                     dddd¦  «        ¦  «         |                      |                     dd¦  «        ¦  «         d S ©NÚaÚbÚcÚdÚe)r   Úinsert_equivÚ
assertTrueÚis_equivÚassertFalse)r2   Ús1s     r4   Útest_insert_equivzTestEquivSet.test_insert_equiv:   s  € Ý‰ZŒZˆØ
�Š˜˜SÑ!Ô!Ð!Ø�Š˜Ÿš C¨Ñ-Ô-Ñ.Ô.Ð.Ø�Š˜Ÿš C¨Ñ-Ô-Ñ.Ô.Ð.Ø
�Š˜˜SÑ!Ô!Ð!Ø�Š˜Ÿš C¨Ñ-Ô-Ñ.Ô.Ð.Ø×Ò˜Ÿš S¨#Ñ.Ô.Ñ/Ô/Ð/Ø
�Š˜˜SÑ!Ô!Ð!Ø�Š˜Ÿš C¨¨c°3Ñ7Ô7Ñ8Ô8Ð8Ø×Ò˜Ÿš S¨#Ñ.Ô.Ñ/Ô/Ð/Ð/Ð/r6   c                 ó  — t          ¦   «         }t          ¦   «         }|                     |¦  «        }|                      |                     ¦   «         ¦  «         |                     dd¦  «         |                     |¦  «        }|                      |                     ¦   «         ¦  «         |                     dd¦  «         |                     |¦  «        }|                      |                     ¦   «         ¦  «         |                     dd¦  «         |                     |¦  «        }|                      |                     ¦   «         ¦  «         |                     dd¦  «         |                     dd¦  «         |                     |¦  «        }|                      |                     dd¦  «        ¦  «         |                      |                     dd¦  «        ¦  «         |                      |                     dd¦  «        ¦  «         d S rA   )r   Ú	intersectrH   Úis_emptyrG   rI   rJ   )r2   rK   Ús2Úrs       r4   Útest_intersectzTestEquivSet.test_intersectF   sŸ  € Ý‰ZŒZˆÝ‰ZŒZˆØ�LŠL˜ÑÔˆØ�Š˜Ÿ
š
™œÑ%Ô%Ð%Ø
�Š˜˜SÑ!Ô!Ð!Ø�LŠL˜ÑÔˆØ�Š˜Ÿ
š
™œÑ%Ô%Ð%Ø
�Š˜˜SÑ!Ô!Ð!Ø�LŠL˜ÑÔˆØ�Š˜Ÿ
š
™œÑ%Ô%Ð%Ø
�Š˜˜SÑ!Ô!Ð!Ø�LŠL˜ÑÔˆØ�Š˜Ÿ
š
™œÑ%Ô%Ð%Ø
�Š˜˜SÑ!Ô!Ð!Ø
�Š˜˜SÑ!Ô!Ð!Ø�LŠL˜ÑÔˆØ�Š˜Ÿ
š
 3¨Ñ,Ô,Ñ-Ô-Ð-Ø×Ò˜Ÿš C¨Ñ-Ô-Ñ.Ô.Ð.Ø×Ò˜Ÿš C¨Ñ-Ô-Ñ.Ô.Ð.Ð.Ð.r6   N)r7   r8   r9   Ú__doc__rL   rR   r:   r6   r4   r?   r?   5   s<   € € € € € ðð ð
0ð 
0ð 
0ð/ð /ð /ð /ð /r6   r?   FT)Úanalysis_onlyÚmutates_CFGc                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚArrayAnalysisPassÚarray_analysis_passc                 ó.   — t          j        | ¦  «         d S ©N)r(   r5   )r2   s    r4   r5   zArrayAnalysisPass.__init__`   s   € ÝÔ˜dÑ#Ô#Ð#Ð#Ð#r6   c                 óÒ  — t          |j        |j        |j        |j        ¦  «        |_        |j                             |j        j        ¦  «         t          j	        |j        ¦  «        }|                     ¦   «          |j
                             |j                             ¦   «         ¦  «         |j        r2t          |j
        ¦  «        dk    r|                     |j
        ¦  «         dS )Nr1   F)r   Ú	typingctxÚfunc_irÚtypemapÚ	calltypesÚarray_analysisÚrunÚblocksr   ÚPostProcessorÚfunc_ir_copiesÚappendÚcopyÚtest_idempotenceÚlen)r2   ÚstateÚ	post_procs      r4   Úrun_passzArrayAnalysisPass.run_passc   sÃ   € Ý,¨U¬_¸e¼mØ-2¬]¸E¼Oñ Mô  MˆÔàÔ× Ò  ¤Ô!5Ñ6Ô6Ð6ÝÔ*¨5¬=Ñ9Ô9ˆ	Ø�Š‰ŒˆØÔ×#Ò# E¤M×$6Ò$6Ñ$8Ô$8Ñ9Ô9Ð9ØÔ!ð 	9¥c¨%Ô*>Ñ&?Ô&?À!Ò&CÐ&CØ×"Ò" 5Ô#7Ñ8Ô8Ð8Øˆur6   N)r7   r8   r9   Ú_namer5   rk   r:   r6   r4   rW   rW   \   s7   € € € € € à!€Eð$ð $ð $ð	ð 	ð 	ð 	ð 	r6   rW   c                   ó2   — e Zd Ze	 	 dd„¦   «         Zdd„ZdS )ÚArrayAnalysisTesterNc           	      ó¦   — |€i }|st          ¦   «         }d|_        |€t          j        j        }|€t          j        j        } | |||||||¦  «        S ©NT)r   Únrtr   Ú
cpu_targetÚtyping_contextÚtarget_context)ÚclsÚargsÚreturn_typeÚflagsÚlocalsÚlibraryrs   rt   s           r4   Úmk_pipelinezArrayAnalysisTester.mk_pipelineq   sk   € ð ˆ>ØˆFØð 	Ý‘G”GˆEØˆŒ	ØÐ!Ý%Ô0Ô?ˆNØÐ!Ý&Ô1Ô@ˆNØˆs�> >°7¸DÀ+Ø˜&ñ"ô "ð 	"r6   c                 ón  — t           j                             |¦  «        | j        _        t          ¦   «                              | j        ¦  «         d| j        _        d| j        _        | j        }g |_	        ||_
        d}t          |¦  «        }|                     t          d¦  «         |                     t          d¦  «         |                     t          d¦  «         |j        j        sQ|                     t$          d¦  «         |                     t&          d¦  «         |                     t(          d	¦  «         |                     t*          d
¦  «         |                     t,          d¦  «         |j        j        s|                     t.          d¦  «         |                     t0          d¦  «         |r|                     t0          d¦  «         |                     t2          d¦  «         |                     t4          d¦  «         |                     ¦   «          |                     |¦  «         |j        S )z4
        Populate and run compiler pipeline
        r:   NÚarray_analysis_testingzanalyzing bytecodezfix up argszprocessing IRznopython rewriteszrewrite semantic constantszdead branch pruningz(inline calls to locally defined closuresznopython frontendzarray analysiszidempotence array analysisz$ensure IR is legal prior to loweringzannotate types)r   ÚFunctionIdentityÚfrom_functionri   Úfunc_idr   rk   ÚliftedÚlifted_fromrd   rg   r   Úadd_passr   r   r   rx   Úno_rewritesr    r   r   r#   r$   r&   rW   r'   r%   Úfinalizera   r`   )r2   Úfuncrg   ri   ÚnameÚpms         r4   Úcompile_to_irz!ArrayAnalysisTester.compile_to_ir€   sæ  € õ &Ô6×DÒDÀTÑJÔJˆŒ
ÔÝÑÔ×"Ò" 4¤:Ñ.Ô.Ð.àˆŒ
ÔØ!%ˆŒ
ÔØ”
ˆØ!ˆÔØ!1ˆÔà'ˆÝ˜ÑÔˆØ
�ŠÕ%Ð';Ñ<Ô<Ð<Ø
�Š•I˜}Ñ-Ô-Ð-Ø
�Š•L /Ñ2Ô2Ð2àŒ{Ô&ð 	@Ø�KŠK�Ð)<Ñ=Ô=Ð=Ø�KŠKÕ0Ð2NÑOÔOÐOØ�KŠK�Ð)>Ñ?Ô?Ð?Ø
�ŠÕ&Ø>ñ	@ô 	@ð 	@ð 	�ŠÕ)Ð+>Ñ?Ô?Ð?àŒ{Ô&ð 	?Ø�KŠKÕ(Ð*=Ñ>Ô>Ð>ð 	�ŠÕ%Ð'7Ñ8Ô8Ð8Øð 	Ià�KŠKÕ)Ð+GÑHÔHÐHà
�Š•NÐ$JÑKÔKÐKØ
�Š•MÐ#3Ñ4Ô4Ð4ð 	�Š‰ŒˆØ
�Šˆu‰ŒˆØÔ#Ð#r6   )NNNNNNrZ   )r7   r8   r9   Úclassmethodr{   r‰   r:   r6   r4   rn   rn   o   sL   € € € € € àØDHØFJð"ð "ð "ñ „[ð"ð+$ð +$ð +$ð +$ð +$ð +$r6   rn   c                   óz   — e 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„ Zd„ Zd„ Zed„ ¦   «         ZdS )ÚTestArrayAnalysisc                 óF  — g }|D ]h}t          |j        |j        |¦  «         t          ¦   «         }|                     |¬¦  «         |                     |                     ¦   «         ¦  «         Œi|                      t          t          |¦  «        ¦  «        dk    ¦  «         d S )N)Úfiler1   )
r   rb   Ú	arg_namesr   Údumpre   ÚgetvaluerH   rh   Úset)r2   Úir_listÚoutputsr]   Úoutputs        r4   Ú
compare_irzTestArrayAnalysis.compare_ir°   s”   € ØˆØð 	.ð 	.ˆGÝ˜œ¨Ô(9¸7ÑCÔCÐCÝ‘Z”ZˆFØ�LŠL˜fˆLÑ%Ô%Ð%Ø�NŠN˜6Ÿ?š?Ñ,Ô,Ñ-Ô-Ð-Ð-Ø�Š��C ™LœLÑ)Ô)¨QÒ.Ñ/Ô/Ð/Ð/Ð/r6   NTc                 ó`  — |€g }|€g }t                                |¦  «        }|r| j        nd„ }|                     ||¦  «        }|r|D ]}	 |	|j        d         ¦  «         Œ|€/|                      |                      |j        ¦  «        ¦  «         dS |D ]}	 |	|j        |j        ¦  «         ŒdS )z<
        Compile the given function and get its IR.
        Nc                 ó   — dS )Nr:   r:   )Úxs    r4   ú<lambda>z5TestArrayAnalysis._compile_and_test.<locals>.<lambda>Â   s   € Àr€ r6   r   )	rn   r{   r–   r‰   Ú
equiv_setsrH   Ú_has_no_assertcallr]   r^   )
r2   ÚfnÚarg_tysÚassertsÚequivsÚ
idempotentÚtest_pipelinerg   Úanalysisr†   s
             r4   Ú_compile_and_testz#TestArrayAnalysis._compile_and_test¹   sè   € ð ˆ?ØˆGØˆ>ØˆFÝ+×7Ò7¸Ñ@Ô@ˆØ.8ÐI˜4œ?˜?¸k¸kÐØ ×.Ò.¨rÐ3CÑDÔDˆØð 	-Øð -ð -�à��XÔ(¨Ô+Ñ,Ô,Ð,Ð,Øˆ?Ø�OŠO˜D×3Ò3°HÔ4DÑEÔEÑFÔFÐFÐFÐFàð 9ð 9�Ø��XÔ% xÔ'7Ñ8Ô8Ð8Ð8ð9ð 9r6   c                 óº  — d                      d                     |¦  «        ¦  «        }|j                             ¦   «         D ]˜\  }}|                     d¬¦  «        D ]|}|                     |j        j        ¦  «        }t          |t          j
        ¦  «        rA|j        dk    r6||j        d         j                 }	|	j                             |¦  «        r  dS Œ}Œ™dS )	NzSizes of {} do not matchz, Úcall©ÚopÚassert_equivr   TF)ÚformatÚjoinrb   ÚitemsÚ
find_exprsÚget_definitionr†   r‡   Ú
isinstancer
   ÚGlobalrv   Úliteral_valueÚ
startswith)
r2   r]   r^   rv   ÚmsgÚlabelÚblockÚexprr�   Útyps
             r4   Ú_has_assertcallz!TestArrayAnalysis._has_assertcallÎ   sÙ   € Ø(×/Ò/°·	²	¸$±´Ñ@Ô@ˆØ#œN×0Ò0Ñ2Ô2ð 	$ð 	$‰LˆE�5Ø×(Ò(¨FÐ(Ñ3Ô3ð $ð $�Ø×+Ò+¨D¬I¬NÑ;Ô;�Ý˜b¥"¤)Ñ,Ô,ð $°´¸NÒ1JÐ1JØ! $¤)¨A¤,Ô"3Ô4�CØÔ(×3Ò3°CÑ8Ô8ð $Ø#˜t˜t˜tøð$ð ˆur6   c                 ó’  — |j                              ¦   «         D ]¬\  }}|                     d¬¦  «        D ]�}|j        dk    rƒ|                     |j        d¬¦  «        }|                     |d¬¦  «        }t          |t          j        ¦  «        r|j	        n|}t          |t          j        ¦  «        r|j	        n|}||k    r  dS Œ‘Œ­dS )NÚgetattrr§   ÚshapeT)Úlhs_onlyF)
rb   r¬   r­   Úattrr®   Úvaluer¯   r
   ÚVarr‡   )r2   r]   r™   r´   rµ   r¶   ÚyÚzs           r4   Ú_has_shapecallz TestArrayAnalysis._has_shapecallÙ   sÙ   € Ø#œN×0Ò0Ñ2Ô2ð 	$ð 	$‰LˆE�5Ø×(Ò(¨IÐ(Ñ6Ô6ð $ð $�Ø”9 Ò'Ð'Ø×.Ò.¨t¬zÀDÐ.ÑIÔI�AØ×.Ò.¨q¸4Ð.Ñ@Ô@�AÝ",¨Qµ´Ñ"7Ô"7Ð>˜œ˜¸Q�AÝ",¨Qµ´Ñ"7Ô"7Ð>˜œ˜¸Q�AØ˜A’v�vØ#˜t˜t˜tøð$ð ˆur6   c                 ó  — |j                              ¦   «         D ]f\  }}|                     d¬¦  «        D ]J}|                     |j        j        ¦  «        }t          |t          j        ¦  «        r|j        dk    r  dS ŒKŒgdS )Nr¦   r§   r©   FT)	rb   r¬   r­   r®   r†   r‡   r¯   r
   r°   )r2   r]   r´   rµ   r¶   r�   s         r4   rœ   z$TestArrayAnalysis._has_no_assertcallå   s�   € Ø#œN×0Ò0Ñ2Ô2ð 	!ð 	!‰LˆE�5Ø×(Ò(¨FÐ(Ñ3Ô3ð !ð !�Ø×+Ò+¨D¬I¬NÑ;Ô;�Ý˜b¥"¤)Ñ,Ô,ð !°´¸NÒ1JÐ1JØ ˜5˜5˜5øð!ð ˆtr6   c                 ó   ‡ ‡— ˆˆ fd„S )Nc                 óX   •— ‰                      ‰                     | |‰¦  «        ¦  «        S rZ   )rH   r¸   ©r]   r^   rv   r2   s     €€r4   rš   z/TestArrayAnalysis.with_assert.<locals>.<lambda>î   s*   ø€ ¨¯ªØ× Ò  ¨'°4Ñ8Ô8ñ):ô ):€ r6   r:   ©r2   rv   s   ``r4   Úwith_assertzTestArrayAnalysis.with_assertí   ó"   øø€ ð:ð :ð :ð :ð :ð 	:r6   c                 ó   ‡ ‡— ˆˆ fd„S )Nc                 óX   •— ‰                      ‰                     | |‰¦  «        ¦  «        S rZ   )rJ   r¸   rÆ   s     €€r4   rš   z2TestArrayAnalysis.without_assert.<locals>.<lambda>ò   s,   ø€ ¨×(8Ò(8Ø× Ò  ¨'°4Ñ8Ô8ñ):ô ):€ r6   r:   rÇ   s   ``r4   Úwithout_assertz TestArrayAnalysis.without_assertñ   rÉ   r6   c                 ó   ‡ ‡‡— ˆfd„Šˆˆ fd„S )Nc                 ó    •— t          ‰¦  «        }t          |dz
  ¦  «        D ]*}|                      ‰|         ‰|dz
           ¦  «        s dS Œ+dS ©Nr1   FT©rh   ÚrangerI   ©Ú	equiv_setr3   Úirv   s      €r4   Úcheckz+TestArrayAnalysis.with_equiv.<locals>.checkö   s\   ø€ Ý�D‘	”	ˆAÝ˜1˜q™5‘\”\ð !ð !�Ø ×)Ò)¨$¨q¬'°4¸¸A¹´;Ñ?Ô?ð !Ø ˜5˜5ð!à�4r6   c                 ó@   •— ‰                       ‰| ¦  «        ¦  «        S rZ   ©rH   ©rÓ   rÕ   r2   s    €€r4   rš   z.TestArrayAnalysis.with_equiv.<locals>.<lambda>ü   ó   ø€  §¢°°°yÑ1AÔ1AÑ!BÔ!B€ r6   r:   ©r2   rv   rÕ   s   ``@r4   Ú
with_equivzTestArrayAnalysis.with_equivõ   ó3   øøø€ ð	ð 	ð 	ð 	ð 	ð CÐBÐBÐBÐBÐBr6   c                 ó   ‡ ‡‡— ˆfd„Šˆˆ fd„S )Nc                 ó    •— t          ‰¦  «        }t          |dz
  ¦  «        D ]*}|                      ‰|         ‰|dz
           ¦  «        r dS Œ+dS rÏ   rÐ   rÒ   s      €r4   rÕ   z.TestArrayAnalysis.without_equiv.<locals>.checkÿ   s\   ø€ Ý�D‘	”	ˆAÝ˜1˜q™5‘\”\ð !ð !�Ø×%Ò% d¨1¤g¨t°A¸±E¬{Ñ;Ô;ð !Ø ˜5˜5ð!à�4r6   c                 ó@   •— ‰                       ‰| ¦  «        ¦  «        S rZ   r×   rØ   s    €€r4   rš   z1TestArrayAnalysis.without_equiv.<locals>.<lambda>  rÙ   r6   r:   rÚ   s   ``@r4   Úwithout_equivzTestArrayAnalysis.without_equivþ   rÜ   r6   c                 ó   ‡ ‡— ˆ ˆfd„S )Nc                 óV   •— ‰                      ‰                     | ‰¦  «        ¦  «        S rZ   )rH   rÂ   ©r]   Úsr2   r™   s     €€r4   rš   z2TestArrayAnalysis.with_shapecall.<locals>.<lambda>  s#   ø€  $§/¢/°$×2EÒ2EÀgÈqÑ2QÔ2QÑ"RÔ"R€ r6   r:   ©r2   r™   s   ``r4   Úwith_shapecallz TestArrayAnalysis.with_shapecall  s   øø€ ØRÐRÐRÐRÐRÐRr6   c                 ó   ‡ ‡— ˆ ˆfd„S )Nc                 óV   •— ‰                      ‰                     | ‰¦  «        ¦  «        S rZ   )rJ   rÂ   rã   s     €€r4   rš   z5TestArrayAnalysis.without_shapecall.<locals>.<lambda>  s&   ø€  $×"2Ò"2°4×3FÒ3FÀwÐPQÑ3RÔ3RÑ"SÔ"S€ r6   r:   rå   s   ``r4   Úwithout_shapecallz#TestArrayAnalysis.without_shapecall
  s   øø€ ØSÐSÐSÐSÐSÐSr6   c           
      óÀ  ‡— d„ }|                       |d|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        g¬	¦  «         d
„ }|                       |t          j        fd ¬¦  «         d„ }|                       |t          j        t          j        f|                      dd¦  «        g¬¦  «         d„ }|                       |t          j        fd ¬¦  «         d„ }|                       |t          j        fd ¬¦  «         d„ }|                       |t          j        fd ¬¦  «         d„ }|                       |t          j        t          j        f|                      dd¦  «        |                      dd¦  «        g¬¦  «         d„ }|                       |t          j        t          j        f|                      dd¦  «        |                      dd¦  «        g¬¦  «         d„ }	|                       |	t          j        t          j        f|                      dd¦  «        |                      dd¦  «        g¬¦  «         d„ }
|                       |
t          j        f|                      dd¦  «        g¬¦  «         d„ }|                       |t          j        t          j        f|                      dd¦  «        |                      dd¦  «        g¬¦  «         d„ }|                       |d|                      dd¦  «        g¬	¦  «         d„ }|                       |d|                      ddd¦  «        g¬	¦  «         d„ }t          j        t          j        d d¦  «        }|                       |t          j        ||f¦  «        fd ¬¦  «         d!„ }|                       |t          j        f|                      dd¦  «        g¬	¦  «         t          d"ddg¦  «        Šˆfd#„}|                       |t          j        f|                      d$d%¦  «        g¬	¦  «         d&„ }|                       |t          j        t          j        d d¦  «        fd ¬¦  «         d'„ }|                       |t          j        t          j        d(d¦  «        fd ¬¦  «         d)„ }|                       |t          j        t          j        t          j        fd ¬¦  «         d*„ }|                       |t          j        t          j        fd ¬¦  «         d+„ }|                       |t          j        t          j        d d¦  «        t          j        t          j        d d¦  «        fd ¬¦  «         |                       |t          j        t          j        d(d¦  «        t          j        t          j        d(d¦  «        fd ¬¦  «         |  	                    t          ¦  «        5 }|                       |t          j        t          j        d d¦  «        t          j        t          j        d(d¦  «        fd ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d,}|                      |t          |j        ¦  «        ¦  «         d S )-Nc                  óŠ   — t          j        d¦  «        } t          j        d¦  «        }d}d}t          j        ||f¦  «        }d S ©Nr   r1   ©ÚnpÚzeros)rB   rC   Úmr3   rD   s        r4   Útest_0z1TestArrayAnalysis.test_base_cases.<locals>.test_0  s>   € Ý”˜‘”ˆAÝ”˜‘”ˆAØˆAØˆAÝ”˜!˜Q˜Ñ Ô ˆAØˆFr6   r:   rB   )r   rC   ©r1   rD   ©r   r1   ©r    c                 ó\   — t          j        | ¦  «        }t          j        | ¦  «        }||z   S rZ   rí   ©r3   rB   rC   s      r4   Útest_1z1TestArrayAnalysis.test_base_cases.<locals>.test_1  ó%   € Ý”˜‘”ˆAÝ”˜‘”ˆAØ�q‘5ˆLr6   )rŸ   c                 ó\   — t          j        |¦  «        }t          j        | ¦  «        }||z   S rZ   rí   ©rð   r3   rB   rC   s       r4   Útest_2z1TestArrayAnalysis.test_base_cases.<locals>.test_2   rø   r6   c                 ó4   — t          j        | ¦  «        }|| z   S rZ   rí   ©r3   rB   s     r4   Útest_3z1TestArrayAnalysis.test_base_cases.<locals>.test_3'  s   € Ý”˜‘”ˆAØ�q‘5ˆLr6   c                 óH   — t          j        | ¦  «        }|dz   }|dz   }||z   S ©Nr1   é   rí   ©r3   rB   rC   rD   s       r4   Útest_4z1TestArrayAnalysis.test_base_cases.<locals>.test_4,  s*   € Ý”˜‘”ˆAØ�A‘ˆAØ�A‘ˆAØ�q‘5ˆLr6   c                 óh   — t          j        | | f¦  «        }| }t          j        || f¦  «        }||z   S rZ   rí   )r3   rB   rð   rC   s       r4   Útest_5z1TestArrayAnalysis.test_base_cases.<locals>.test_53  s6   € Ý”˜!˜Q˜Ñ Ô ˆAØˆAÝ”˜!˜Q˜Ñ Ô ˆAØ�q‘5ˆLr6   c                 óp   — t          j        |¦  «        }t          j        | ¦  «        }||z   }||z
  }||z   S rZ   rí   )rð   r3   rB   rC   rE   rF   s         r4   Útest_6z1TestArrayAnalysis.test_base_cases.<locals>.test_6:  s7   € Ý”˜‘”ˆAÝ”˜‘”ˆAØ�A‘ˆAØ�A‘ˆAØ�q‘5ˆLr6   rE   rF   c                 ó~   — t          j        |¦  «        }t          j        | ¦  «        }| dk    r||z   }n||z
  }||z   S ©Né
   rí   ©rð   r3   rB   rC   rE   s        r4   Útest_7z1TestArrayAnalysis.test_base_cases.<locals>.test_7D  óB   € Ý”˜‘”ˆAÝ”˜‘”ˆAØ�BŠwˆwØ˜‘E��à˜‘E�Ø�q‘5ˆLr6   c                 ó~   — t          j        |¦  «        }t          j        | ¦  «        }| dk    r||z   }n||z   }||z   S r	  rí   r  s        r4   Útest_8z1TestArrayAnalysis.test_base_cases.<locals>.test_8P  r  r6   c                 ó°   — t          j        | ¦  «        }d}| dk     r9| dz  } t          j        | ¦  «        }|t          j        ||z   ¦  «        z  }| dk     °9|S ©Nr   r  r1   ©rî   ÚonesÚsum)rð   ÚArä   ÚBs       r4   Útest_9z1TestArrayAnalysis.test_base_cases.<locals>.test_9\  s[   € Ý”˜‘
”
ˆAØˆAØ�a’%�%Ø�Q‘�Ý”G˜A‘J”J�Ø•R”V˜A ™E‘]”]Ñ"�ð �a’%�%ð ˆHr6   r  r  c                 ó&  — | dz
  }|dz   }|dz   }t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        | ¦  «        }t          j        ||z   ¦  «        }	t          j        ||z   ¦  «        }
|	|
z   S r0   ©rî   rï   r  )rð   r3   ÚpÚqrQ   r  r  ÚCÚDrä   Úts              r4   Útest_10z2TestArrayAnalysis.test_base_cases.<locals>.test_10g  s|   € Ø�A‘ˆAØ�A‘ˆAØ�A‘ˆAÝ”˜‘”ˆAÝ”˜‘”ˆAÝ”˜‘”ˆAÝ”˜‘”ˆAÝ”�q˜1‘u‘”ˆAÝ”�q˜1‘u‘”ˆAØ�q‘5ˆLr6   r  r  c                  óÂ   — t          j        d¦  «        } t          j        d¦  «        }| dd …         }|d d…         }t          |¦  «        }t          |¦  «        }||k    S )Né   r1   éÿÿÿÿ©rî   r  rh   ©rB   rC   rD   rE   rF   Úfs         r4   Útest_11z2TestArrayAnalysis.test_base_cases.<locals>.test_11v  sU   € Ý”˜‘
”
ˆAÝ”˜‘
”
ˆAØ�!�"�"”ˆAØ�#�2�#”ˆAÝ�A‘”ˆAÝ�A‘”ˆAØ˜’6ˆMr6   r%  c                  ó4  — t          j        d¦  «                             d¦  «        } t          j        d¦  «                             d¦  «        }| dd …d d …f         }|d d…d d …f         }|j        d         }|j        d         }t	          |¦  «        }||k    S )Né   )r!  r!  r1   r"  r   )rî   r  Úreshaper»   rh   )rB   rC   rD   rE   rF   r%  Úgs          r4   Útest_12z2TestArrayAnalysis.test_base_cases.<locals>.test_12�  sŒ   € Ý”˜‘”×#Ò# EÑ*Ô*ˆAÝ”˜‘”×#Ò# EÑ*Ô*ˆAØ�!�"�"�Q�Q�Q�$”ˆAØ�#�2�#�a�a�a�%”ˆAØ”˜”
ˆAØ”˜”
ˆAÝ�A‘”ˆAØ˜’6ˆMr6   r*  c                 ó   — | }|d         S ©Nr   r:   )r,   ÚT2s     r4   Útest_tup_argz7TestArrayAnalysis.test_base_cases.<locals>.test_tup_arg�  s   € ØˆBØ�a”5ˆLr6   r1   c                 ó‚   — t          j        | ¦  «        }|f}t          j        t          |d         ¦  «        ¦  «        }|S r-  r#  )rð   r  ÚSr  s       r4   Útest_arr_in_tupz:TestArrayAnalysis.test_base_cases.<locals>.test_arr_in_tup•  s4   € Ý”˜‘
”
ˆAØ�ˆAÝ”�˜A˜aœD™	œ	Ñ"Ô"ˆAØˆHr6   r,   c                 ó,   •—  ‰| | ¦  «        }|d         S r-  r:   )r3   rQ   r,   s     €r4   Útest_namedtuplez:TestArrayAnalysis.test_base_cases.<locals>.test_namedtupleŸ  s   ø€ Ø��!�Q‘”ˆAØ�Q”4ˆKr6   rQ   ©r3   r3   c                 óT   — t          j        | ¦  «        }t          |d         ¦  «        S r-  )rî   Úwhererh   )r  rD   s     r4   Útest_np_where_tup_returnzCTestArrayAnalysis.test_base_cases.<locals>.test_np_where_tup_return¦  s   € Ý”˜‘”ˆAÝ�q˜”t‘9”9Ðr6   c                 óL   — | j         \  }}t          j        ||f¦  «        }| |z   S rZ   )r»   rî   r  )r  rð   r3   r  s       r4   Ú
test_shapez5TestArrayAnalysis.test_base_cases.<locals>.test_shape­  s'   € Ø”W‰FˆQ�Ý”˜˜A˜‘”ˆAØ�q‘5ˆLr6   r  c                 óZ  — t          j        | ¦  «        }t          j        |¦  «        }t          j        |¦  «        }| |k    rt          j        ||z   ¦  «        }nd}||k    rd}nt          j        ||z   ¦  «        }d}| |k    r ||k    rt          j        ||z   |z   ¦  «        }||z   |z   S r-  r  )	Úlrð   r3   r  r  r  rQ   rä   r  s	            r4   Ú	test_condz4TestArrayAnalysis.test_base_cases.<locals>.test_cond´  s§   € Ý”˜‘
”
ˆAÝ”˜‘
”
ˆAÝ”˜‘
”
ˆAØ�AŠvˆvÝ”F˜1˜q™5‘M”M��à�Ø�AŠvˆvØ��å”F˜1˜q™5‘M”M�ØˆAØ�AŠvˆvØ˜’6�6Ýœ˜q 1™u q™yÑ)Ô)�AØ�q‘5˜1‘9Ðr6   c                 ó�   — | |k    sJ ‚t          j        | ¦  «        }t          j        |¦  «        }t          j        ||z   ¦  «        S rZ   r  )rð   r3   r  r  s       r4   Útest_assert_1z8TestArrayAnalysis.test_base_cases.<locals>.test_assert_1È  s;   € Ø˜’6�6�6�6Ý”˜‘
”
ˆAÝ”˜‘
”
ˆAÝ”6˜!˜a™%‘=”=Ð r6   c                 óT   — | j         |j         k    sJ ‚t          j        | |z   ¦  «        S rZ   )r»   rî   r  )r  r  s     r4   Útest_assert_2z8TestArrayAnalysis.test_base_cases.<locals>.test_assert_2Ð  s)   € Ø”7˜aœgÒ%Ð%Ð%Ð%Ý”6˜!˜a™%‘=”=Ð r6   zDimension mismatch)r¤   rÛ   r   ÚintprÈ   rÌ   ÚArrayÚTupler   ÚassertRaisesÚAssertionErrorÚassertInÚstrÚ	exception)r2   rñ   r÷   rû   rþ   r  r  r  r  r  r  r  r&  r+  r/  Úint_arr_typr2  r4  r8  r:  r=  r?  rA  Úraisesr³   r,   s                            @r4   Útest_base_casesz!TestArrayAnalysis.test_base_cases  sÇ  ø€ ð	ð 	ð 	ð 	×Ò˜v rØ'+§¢°s¸DÑ'AÔ'AØ'+§¢°s¸DÑ'AÔ'AØ'+§¢°s¸FÑ'CÔ'Cð'Eð 	ñ 	Fô 	Fð 	Fð
	ð 	ð 	ð 	×Ò˜v­¬
 }¸dÐÑCÔCÐCð	ð 	ð 	ð 	×Ò˜v­¬
µE´JÐ'?Ø(,×(8Ò(8¸¸cÑ(BÔ(BÐ'Cð 	ñ 	Eô 	Eð 	Eð	ð 	ð 	ð 	×Ò˜v­¬
 }¸dÐÑCÔCÐCð	ð 	ð 	ð
 	×Ò˜v­¬
 }¸dÐÑCÔCÐCð	ð 	ð 	ð
 	×Ò˜v­¬
 }¸dÐÑCÔCÐCð	ð 	ð 	ð 	×Ò˜v­¬
µE´JÐ'?Ø(,×(8Ò(8¸¸cÑ(BÔ(BØ(,×(;Ò(;¸CÀÑ(EÔ(Eð(Gð 	ñ 	Hô 	Hð 	Hð	ð 	ð 	ð 	×Ò˜v­¬
µE´JÐ'?Ø(,×(8Ò(8¸¸cÑ(BÔ(BØ(,×(;Ò(;¸CÀÑ(EÔ(Eð(Gð 	ñ 	Hô 	Hð 	Hð	ð 	ð 	ð 	×Ò˜v­¬
µE´JÐ'?Ø(,×(8Ò(8¸¸cÑ(BÔ(BØ(,×(8Ò(8¸¸cÑ(BÔ(Bð(Dð 	ñ 	Eô 	Eð 	Eð	ð 	ð 	ð 	×Ò˜v­¬
 }Ø(,×(8Ò(8¸¸cÑ(BÔ(BÐ'Cð 	ñ 	Eô 	Eð 	Eð
	ð 
	ð 
	ð 	×Ò˜w­¬µE´JÐ(@Ø(,×(8Ò(8¸¸cÑ(BÔ(BØ(,×(;Ò(;¸CÀÑ(EÔ(Eð(Gð 	ñ 	Hô 	Hð 	Hð	ð 	ð 	ð 	×Ò˜w¨Ø'+§¢°s¸CÑ'@Ô'@Ð&Að 	ñ 	Cô 	Cð 	Cð	ð 	ð 	ð 	×Ò˜w¨Ø'+§¢°s¸CÀÑ'EÔ'EÐ&Fð 	ñ 	Hô 	Hð 	Hð	ð 	ð 	õ ”k¥%¤*¨a°Ñ5Ô5ˆØ×Ò˜|ÝŒ[˜+ {Ð3Ñ4Ô4Ð6Àð 	ñ 	Fô 	Fð 	Fð	ð 	ð 	ð 	×Ò˜µ´°Ø'+§¢°s¸CÑ'@Ô'@Ð&Að 	ñ 	Cô 	Cð 	Cõ �s˜S ˜IÑ&Ô&ˆð	ð 	ð 	ð 	ð 	ð 	×Ò˜µ´°Ø(,¯ª¸¸ZÑ(HÔ(HÐ'Ið 	ñ 	Lô 	Lð 	Lð	ð 	ð 	ð 	×ÒÐ7ÝŒ[�œ Q¨Ñ,Ô,Ð.¸ð 	ñ 	>ô 	>ð 	>ð	ð 	ð 	ð 	×Ò˜z­E¬K½¼
ÀAÀsÑ,KÔ,KÐ+MØ'+ð 	ñ 	-ô 	-ð 	-ð	ð 	ð 	ð" 	×Ò˜y­5¬:µu´zÅ5Ä:Ð*NØ'+ð 	ñ 	-ô 	-ð 	-ð	!ð 	!ð 	!ð
 	×Ò˜}­u¬z½5¼:Ð.FØ'+ð 	ñ 	-ô 	-ð 	-ð	!ð 	!ð 	!ð 	×Ò˜}­u¬{½5¼:ÀqÈ#Ñ/NÔ/NÝ/4¬{½5¼:ÀqÈ#Ñ/NÔ/Nð/Qà'+ð 	ñ 	-ô 	-ð 	-ð 	×Ò˜}­u¬{½5¼:ÀqÈ#Ñ/NÔ/NÝ/4¬{½5¼:ÀqÈ#Ñ/NÔ/Nð/Qà'+ð 	ñ 	-ô 	-ð 	-ð ×Ò�~Ñ.Ô.ð 	1°&Ø×"Ò" =µ5´;½u¼zÈ1ÈcÑ3RÔ3RÝ38´;½u¼zÈ1ÈcÑ3RÔ3Rð3Uà+/ð #ñ 1ô 1ð 1ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð #ˆØ�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   ×AX)Ø)X-Ø0X-c           	      óH  ‡‡— ddl m} |d„ ¦   «         Šˆfd„}|                      |t          j        f|                      dd¦  «        g|                      dd¦  «        g¬¦  «         ˆfd„}|                      |t          j        f|                      dd¦  «        g¬	¦  «          |d
¬¦  «        d„ ¦   «         Šˆfd„}|                      |t          j        f|                      ddd¦  «        |                      dd¦  «        g|                      dd¦  «        g¬¦  «         d S )Nr   )Ústencilc                 óN   — d| d         | d         z   | d         z   | d         z   z  S )Ng      Ð?ró   )r1   r   )r   r"  )r"  r   r:   ©rB   s    r4   Úkernel_1z4TestArrayAnalysis.test_stencilcall.<locals>.kernel_1å  s+   € à˜1˜Sœ6 A c¤F™?¨Q¨t¬WÑ4°q¸´wÑ>Ñ?Ð?r6   c                 óP   •— t          j        | | f¦  «        } ‰|¦  «        }||z   S rZ   ©rî   r  ©r3   rB   rC   rQ  s      €r4   r÷   z2TestArrayAnalysis.test_stencilcall.<locals>.test_1é  s*   ø€ Ý”˜˜1˜‘”ˆAØ�˜‘”ˆAØ�q‘5ˆLr6   rB   rC   ©r    rŸ   c                 ó†   •— t          j        | | f¦  «        }t          j        | dz   | dz   f¦  «        } ‰||¬¦  «         |S )Nr1   )ÚoutrS  rT  s      €r4   rû   z2TestArrayAnalysis.test_stencilcall.<locals>.test_2ò  sI   ø€ Ý”˜˜1˜‘”ˆAÝ”˜˜1™˜Q˜q™S˜	Ñ"Ô"ˆAØˆH�Q˜AÐÑÔÐØˆHr6   rô   )rD   )Ústandard_indexingc                 ó6   — | d         |d         z   |d         z   S )N)r   r1   r   )r   r"  r   r   r:   )rB   rC   rD   s      r4   Úkernel_2z4TestArrayAnalysis.test_stencilcall.<locals>.kernel_2û  s   € à�U”8˜a œiÑ'¨!¨A¬$Ñ.Ð.r6   c                 óî   •— t          j        d¦  «                             ddd¦  «        }t          j        d¦  «                             | dd¦  «        }t          j        d¦  «        } ‰|||¦  «        }|S )Né@   r=   é   r  r1   )rî   Úaranger)  rï   )r3   rB   rC   ÚuÚvrZ  s        €r4   rþ   z2TestArrayAnalysis.test_stencilcall.<locals>.test_3ÿ  sf   ø€ Ý”	˜"‘”×%Ò% a¨¨!Ñ,Ô,ˆAÝ”	˜"‘”×%Ò% a¨¨!Ñ,Ô,ˆAÝ”˜‘”ˆAØ�˜˜A˜qÑ!Ô!ˆAØˆHr6   r`  r_  )	Únumba.stencils.stencilrN  r¤   r   rB  rÛ   rÌ   rà   rÈ   )r2   rN  r÷   rû   rþ   rQ  rZ  s        @@r4   Útest_stencilcallz"TestArrayAnalysis.test_stencilcallã  s²  øø€ Ø2Ð2Ð2Ð2Ð2Ð2Ø	ð	@ð 	@ñ 
Œð	@ð	ð 	ð 	ð 	ð 	ð
 	×Ò˜v­¬
 }Ø'+§¢°s¸CÑ'@Ô'@Ð&AØ(,×(;Ò(;¸CÀÑ(EÔ(EÐ'Fð 	ñ 	Hô 	Hð 	Hð	ð 	ð 	ð 	ð 	ð 	×Ò˜v­¬
 }Ø'+×'9Ò'9¸#¸sÑ'CÔ'CÐ&Dð 	ñ 	Fô 	Fð 	Fð 
ˆ 6Ð	*Ñ	*Ô	*ð	/ð 	/ñ 
+Ô	*ð	/ð	ð 	ð 	ð 	ð 	ð 	×Ò˜v­¬
 }Ø'+§¢°s¸CÀÑ'EÔ'EØ'+×'9Ò'9¸#¸sÑ'CÔ'Cð'Eà(,×(8Ò(8¸¸cÑ(BÔ(BÐ'Cð 	ñ 	Eô 	Eð 	Eð 	Eð 	Er6   c                 ó�  — d„ }|                       |t          j        t          j        f|                      dd¦  «        |                      dd¦  «        gd¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        |                      dd	¦  «        gd¬¦  «         d
„ }|                       |t          j        f|                      dd¦  «        gd¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        gd¬¦  «         d„ }|                       |t          j        t          j        f|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        gd¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        gd¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        gd¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        gd¬¦  «         d„ }	|                       |	t          j        f|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        |                      dd¦  «        gd¬¦  «         d S )Nc                 óì   — t          j        | ¦  «        }t          j        |¦  «        }t          j        ||z   ¦  «        }|d| dz
  …         }|d|dz
  …         }t          j        ||z   ¦  «        }||z   S r0   r  )rð   r3   r  r  rä   r  r  r  s           r4   r÷   z,TestArrayAnalysis.test_slice.<locals>.test_1  si   € Ý”˜‘”ˆAÝ”˜‘”ˆAÝ”�q˜1‘u‘”ˆAØ�!�A�a‘C�%”ˆAØ�!�A�a‘C�%”ˆAÝ”�q˜1‘u‘”ˆAØ�q‘5ˆLr6   r  r  r  r  F)rŸ   r¡   c                 óŒ   — t          j        | ¦  «        }|d| dz
  …         }|d| dz
  …         }|d| dz
  …         }||z   }||z   S )Nr   r<   r1   r  rí   )rð   r  r  r  r  ÚEs         r4   rû   z,TestArrayAnalysis.test_slice.<locals>.test_2  sT   € Ý”˜‘”ˆAØ�!�A�a‘C�%”ˆAØ�!�A�a‘C�%”ˆAØ�!�A�a‘C�%”ˆAØ�A‘ˆAØ�q‘5ˆLr6   rf  c                 óŒ   — t          j        | | f¦  «        }|d| dz
  …d| dz
  …f         }|d| dz
  …d| dz
  …f         }||z   }|S r  rí   ©rð   r  r  r  rf  s        r4   rþ   z,TestArrayAnalysis.test_slice.<locals>.test_3&  s[   € Ý”˜!˜A˜‘”ˆAØ�!�A�a‘C�%˜˜!˜A™#˜�+”ˆAØ�!�A�a‘C�%˜˜!˜A™#˜�+”ˆAØ�A‘ˆAØˆHr6   c                 ó€   — t          j        | | f¦  «        }|d| dz
  …d d …f         }|d| dz
  …d d …f         }||z   }|S r  rí   rh  s        r4   r  z,TestArrayAnalysis.test_slice.<locals>.test_40  sS   € Ý”˜!˜A˜‘”ˆAØ�!�A�a‘C�%˜˜˜�'”
ˆAØ�!�A�a‘C�%˜˜˜�'”
ˆAØ�A‘ˆAØˆHr6   c                 óÜ   — t          j        | ¦  «        }t          j        | ¦  «        }|d| dz
  …         |d| dz
  …<   t          j        |¦  «        }|d| dz
  …         }||d|dz
  …<   ||z   S )Nr1   r   r  rí   )rð   r3   r  r  r  r  s         r4   r  z,TestArrayAnalysis.test_slice.<locals>.test_5:  ss   € Ý”˜‘”ˆAÝ”˜‘”ˆAØ˜˜1˜Q™3˜”xˆAˆa��!‘ˆe‰HÝ”˜‘”ˆAØ�!�A�a‘C�%”ˆAØˆAˆa��!‘ˆe‰Hð �q‘5ˆLr6   c                 ó€   — t          j        | | f¦  «        }|d| dz
  …d d…f         }|d| dz
  …d d…f         }||z   }|S )Nr   r  r"  r1   rí   rh  s        r4   r  z,TestArrayAnalysis.test_slice.<locals>.test_6J  sS   € Ý”˜!˜A˜‘”ˆAØ�!�A�a‘C�%˜˜˜�)”ˆAØ�!�A�a‘C�%˜˜˜�)”ˆAØ�A‘ˆAØˆHr6   c                 ó€   — t          j        | | f¦  «        }|d| dz
  …dd…f         }|d| dz
  …dd…f         }||z   }|S )Nr   r  éýÿÿÿr"  r1   éüÿÿÿéþÿÿÿrí   rh  s        r4   r  z,TestArrayAnalysis.test_slice.<locals>.test_7T  sS   € Ý”˜!˜A˜‘”ˆAØ�!�A�a‘C�%˜˜2˜�+”ˆAØ�!�A�a‘C�%˜˜2˜�+”ˆAØ�A‘ˆAØˆHr6   c                 óz   — t          j        | | f¦  «        }|d | dz
  …dd …f         }|dd…d d …f         }||z   }|S )Nr  r   r1   r"  rí   rh  s        r4   r  z,TestArrayAnalysis.test_slice.<locals>.test_8^  sO   € Ý”˜!˜A˜‘”ˆAØ�$�1�Q‘3�$�q�r�r�'”
ˆAØ�!�B�$�q�q�q�&”	ˆAØ�A‘ˆAØˆHr6   c                 óŠ   — t          j        | ¦  «        }|d d…         }|dd …         }|d dd…         }||z   }|}|dz  }|||fS )Nr   r1   r"  rí   )rð   r  r  r  r  rf  ÚFs          r4   r  z,TestArrayAnalysis.test_slice.<locals>.test_9h  s\   € õ ”˜!‘”ˆAØ�"�1�"”ˆAØ�!�"�"”ˆAØ�&�2�b�&”	ˆAØ�A‘ˆAØˆAØ�‰FˆAØ�a˜�7ˆNr6   rð   rr  )r    r¡   )r¤   r   rB  rÈ   rÌ   rà   rÛ   )
r2   r÷   rû   rþ   r  r  r  r  r  r  s
             r4   Ú
test_slicezTestArrayAnalysis.test_slice  sl  € ð	ð 	ð 	ð 	×Ò˜v­¬
µ5´:Ð'?Ø(,×(8Ò(8¸¸cÑ(BÔ(BØ(,×(;Ò(;¸CÀÑ(EÔ(Eð(Gà*/ð 	ñ 	1ô 	1ð 	1ð
	ð 	ð 	ð 	×Ò˜v­¬
 }Ø(,×(;Ò(;¸CÀÑ(EÔ(EØ(,×(;Ò(;¸CÀÑ(EÔ(Eð(Gà*/ð 	ñ 	1ô 	1ð 	1ð
	ð 	ð 	ð 	×Ò˜v­¬
 }Ø(,×(;Ò(;¸CÀÑ(EÔ(EÐ'FØ*/ð 	ñ 	1ô 	1ð 	1ð	ð 	ð 	ð 	×Ò˜v­¬
 }Ø(,×(;Ò(;¸CÀÑ(EÔ(EÐ'FØ*/ð 	ñ 	1ô 	1ð 	1ð		ð 		ð 		ð 	×Ò˜v­¬
µ5´:Ð'>Ø(,×(;Ò(;¸CÀÑ(EÔ(EØ(,×(8Ò(8¸¸cÑ(BÔ(BØ(,×(8Ò(8¸¸cÑ(BÔ(Bð(Dð +0ð	 	ñ 	1ô 	1ð 	1ð	ð 	ð 	ð 	×Ò˜v­¬
 }Ø(,×(;Ò(;¸CÀÑ(EÔ(EÐ'FØ*/ð 	ñ 	1ô 	1ð 	1ð	ð 	ð 	ð 	×Ò˜v­¬
 }Ø(,×(8Ò(8¸¸cÑ(BÔ(BÐ'CØ*/ð 	ñ 	1ô 	1ð 	1ð	ð 	ð 	ð 	×Ò˜v­¬
 }Ø(,×(;Ò(;¸CÀÑ(EÔ(EÐ'FØ*/ð 	ñ 	1ô 	1ð 	1ð
	ð 
	ð 
	ð 	×Ò˜v­¬
 }Ø'+×'9Ò'9¸#¸sÑ'CÔ'CØ'+§¢°s¸CÑ'@Ô'@Ø'+§¢°s¸CÑ'@Ô'@Ø'+§¢°s¸CÑ'@Ô'@ð'Cð +0ð 	ñ 	1ô 	1ð 	1ð 	1ð 	1r6   c                 ó  — d„ }|                       |t          j        f|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        g¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        g|                      d¦  «        g¬	¦  «         d
„ }|                       |t          j        f|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        g¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        g¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        |                      dd¦  «        g¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        g¬¦  «         d„ }|                       |t          j        f|                      dd¦  «        |                      dd¦  «        g|                      d¦  «        |                      d¦  «        g¬	¦  «         d„ }|                       |t          j        t          j        dd¦  «        f|                      ddddd¦  «        g|                      d¦  «        |                      d¦  «        g¬	¦  «         d„ }	|                       |	t          j        f|                      dd¦  «        g|                      d¦  «        g¬	¦  «         d„ }
|                       |
t          j        t          j        f|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        g¬¦  «         d„ }|                       |t          j        t          j        t          j        f|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        |                      dd¦  «        |                      dd¦  «        |                      dd¦  «        |                      d d¦  «        g¬¦  «         d!„ }|                       |t          j        t          j        f|                      dd¦  «        |                      dd¦  «        |                      dd¦  «        g¬¦  «         d"„ }t          d#¦  «        d$z   }dgd%„ t          t          d¦  «        |¦  «        D ¦   «         z   }dgd&„ t          t          d¦  «        |¦  «        D ¦   «         z   }|d'„ t          t          d¦  «        |¦  «        D ¦   «         z  }|                       |t          j        f | j        |Ž  | j        |Ž g¬¦  «         d(„ }|                       |t          j        t          j        f|                      dd)¦  «        |                      d*d+¦  «        g|                      d¦  «        |                      d¦  «        |                      d*¦  «        |                      d,¦  «        g¬	¦  «         d-„ }|                       |d.|                      d,d/¦  «        |                      d0d1¦  «        |                      d2d3¦  «        |                      d4d5¦  «        |                      d6d7¦  «        |                      d8d9¦  «        |                      d:d;¦  «        g¬¦  «         d<„ }|                       |t          j        t          j        f|                      d=d¦  «        |                      dd>¦  «        |                      dd?d@¦  «        |                      dAdB¦  «        |                      dCdDdE¦  «        g¬¦  «         dF„ }|                       |t          j
        t          j
        f|                      ddG¦  «        |                      ddH¦  «        g¬¦  «         dI„ }|                       |t          j        t          j        t          j        f|                      ddJ¦  «        |                      ddK¦  «        |                      ddJ¦  «        |                      dAdL¦  «        |                      dCdM¦  «        |                      dDdM¦  «        g|                      d=dN¦  «        g¬	¦  «         dO„ }|                       |t          j        t          j        f|                      ddd¦  «        gd ¬	¦  «         dP„ }|                       |d.|                      dd¦  «        gd ¬	¦  «         d S )QNc                 óˆ   — t          j        | ¦  «        }t          j        | | f¦  «        }t          j        | | f¬¦  «        }d S ©N)r»   rí   r  s       r4   Ú
test_zerosz6TestArrayAnalysis.test_numpy_calls.<locals>.test_zeros|  ó<   € Ý”˜‘”ˆAÝ”˜!˜Q˜Ñ Ô ˆAÝ”  1˜vÐ&Ñ&Ô&ˆAˆAˆAr6   rB   r3   rC   r5  rD   rô   c                 ó\   — t          j        d¦  «        }t          j        d¦  «        }||z   S r   )rî   Úarrayr  rö   s      r4   Útest_0d_arrayz9TestArrayAnalysis.test_numpy_calls.<locals>.test_0d_array…  s%   € Ý”˜‘”ˆAÝ”˜‘
”
ˆAØ�q‘5ˆLr6   rU  c                 óˆ   — t          j        | ¦  «        }t          j        | | f¦  «        }t          j        | | f¬¦  «        }d S rv  rS  r  s       r4   Ú	test_onesz5TestArrayAnalysis.test_numpy_calls.<locals>.test_ones�  s:   € Ý”˜‘
”
ˆAÝ”˜˜A˜‘”ˆAÝ”˜q !˜fÐ%Ñ%Ô%ˆAˆAˆAr6   c                 óˆ   — t          j        | ¦  «        }t          j        | | f¦  «        }t          j        | | f¬¦  «        }d S rv  )rî   Úemptyr  s       r4   Ú
test_emptyz6TestArrayAnalysis.test_numpy_calls.<locals>.test_empty–  rx  r6   c                 ó¶   — t          j        | ¦  «        }t          j        | ¬¦  «        }t          j        | | ¬¦  «        }t          j        | | dz   ¬¦  «        }d S )N)ÚN)r‚  ÚMr1   )rî   Úeye©r3   rB   rC   rD   rE   s        r4   Útest_eyez4TestArrayAnalysis.test_numpy_calls.<locals>.test_eyeŸ  sN   € Ý”�q‘	”	ˆAÝ”˜�‘”ˆAÝ”˜˜aÐ Ñ Ô ˆAÝ”˜˜a !™eÐ$Ñ$Ô$ˆAˆAˆAr6   rE   c                 ó.   — t          j        | ¦  «        }d S rZ   )rî   Úidentityrý   s     r4   Útest_identityz9TestArrayAnalysis.test_numpy_calls.<locals>.test_identityª  s   € Ý”˜A‘”ˆAˆAˆAr6   c                 óª   — t          j        | ¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        |d¬¦  «        }d S )Nr1   )Úk)rî   rˆ  Údiagr…  s        r4   Ú	test_diagz5TestArrayAnalysis.test_numpy_calls.<locals>.test_diag¯  s>   € Ý”˜A‘”ˆAÝ”˜‘
”
ˆAÝ”˜‘
”
ˆAÝ”˜˜Q�‘”ˆAˆAˆAr6   )r3   c                 óÐ   — t          j        | ¦  «        }t          j        | ¦  «        }t          j        | ¦  «        }t          j        | d¦  «        }t          j        | ¦  «        }d S r0   )rî   Ú
empty_likeÚ
zeros_likeÚ	ones_likeÚ	full_likeÚasfortranarrayr$  s         r4   Útest_array_likez;TestArrayAnalysis.test_numpy_calls.<locals>.test_array_likeº  sR   € Ý”˜aÑ Ô ˆAÝ”˜aÑ Ô ˆAÝ”˜Q‘”ˆAÝ”˜Q Ñ"Ô"ˆAÝÔ! !Ñ$Ô$ˆAˆAˆAr6   r  r  rF   r%  c                 ó°   — t          j        | | z  ¦  «        }|                     | | f¦  «        }|                     ¦   «         |                     ¦   «         z   S rZ   )rî   r  r)  r  rö   s      r4   Útest_reshapez8TestArrayAnalysis.test_numpy_calls.<locals>.test_reshapeÇ  sC   € Ý”˜˜A™‘”ˆAØ—	’	˜1˜a˜&Ñ!Ô!ˆAØ—5’5‘7”7˜QŸUšU™WœWÑ$Ð$r6   c                 óh   — t          j        | |f¦  «        }|j        }|                     ¦   «         }d S rZ   ©rî   r  r,   Ú	transpose©rð   r3   rB   rC   rD   s        r4   Útest_transposez:TestArrayAnalysis.test_numpy_calls.<locals>.test_transposeÐ  s+   € Ý”˜˜A˜‘”ˆAØ”ˆAØ—’‘”ˆAˆAˆAr6   )rð   r3   )r3   rð   c                 ó  — t          j        | ||f¦  «        }|j        }|                     ¦   «         }|                     ddd¦  «        }|                     d¦  «        }|                     ddd¦  «        }|                     d¦  «        }	d S )Nr  r   r1   )r  r   r1   )r   r  r1   r˜  )
rð   r3   r‹  rB   rC   rD   rE   ÚdtrF   Úets
             r4   Útest_transpose_3dz=TestArrayAnalysis.test_numpy_calls.<locals>.test_transpose_3dÜ  s{   € Ý”˜˜A˜q˜	Ñ"Ô"ˆAØ”ˆAØ—’‘”ˆAØ—’˜A˜a Ñ"Ô"ˆAØ—’˜WÑ%Ô%ˆBØ—’˜A˜a Ñ"Ô"ˆAØ—’˜WÑ%Ô%ˆBˆBˆBr6   )rð   r3   r‹  )r‹  r3   rð   )r‹  rð   r3   r�  )rð   r‹  r3   rž  c                 óN   — t          j        | |f¦  «        }|j        }|j        }d S rZ   )rî   r  ÚrealÚimagrš  s        r4   Útest_real_imag_attrz?TestArrayAnalysis.test_numpy_calls.<locals>.test_real_imag_attrï  s%   € Ý”˜˜A˜‘”ˆAØ”ˆAØ”ˆAˆAˆAr6   c                 ó‚  — t           j                             | ¦  «        }t           j                             | | ¦  «        }t           j                             | ¦  «        }t           j                             | | ¦  «        }t           j                             | ¦  «        }t           j                             | | f¦  «        }t           j                             | | f¬¦  «        }t           j                             | ¦  «        }t           j                             | | f¦  «        }	t           j                             | | f¬¦  «        }
t           j                             | ¦  «        }t           j                             | | f¦  «        }t           j                             | | f¬¦  «        }t           j                             | ¦  «        }t           j                             | | f¦  «        }t           j                             | | f¬¦  «        }t           j                             | ¦  «        }t           j                             | | f¦  «        }t           j                             | | f¬¦  «        }t           j                             d| ¦  «        }t           j                             d| | f¦  «        }t           j                             d| | f¬¦  «        }t           j         	                    d| ¦  «        }t           j         	                    d| | f¦  «        }t           j         	                    d| | f¬¦  «        }t           j         
                    d| ¦  «        }t           j         
                    d| | f¦  «        }t           j         
                    d| | f¬¦  «        }t           j                             d| ¦  «        }t           j                             d| | f¦  «        }t           j                             d| | f¬¦  «        }t           j                             d| ¦  «        } t           j                             d| | f¦  «        }!t           j                             d| | f¬¦  «        }"t           j                             d| ¦  «        }#t           j                             d| | f¦  «        }$t           j                             d| | f¬¦  «        }%t           j                             d| ¦  «        }&t           j                             d| | f¦  «        }'t           j                             d| | f¬¦  «        }(t           j                             dd| ¦  «        })t           j                             dd| | f¦  «        }*t           j                             dd| | f¬¦  «        }+t           j                             dd| ¦  «        },t           j                             dd| | f¦  «        }-t           j                             dd| | f¬¦  «        }.t           j                             dd| ¦  «        }/t           j                             dd| | f¦  «        }0t           j                             dd| | f¬¦  «        }1t           j                             dd| ¦  «        }2t           j                             dd| | f¦  «        }3t           j                             dd| | f¬¦  «        }4t           j                             dd| ¦  «        }5t           j                             dd| | f¦  «        }6t           j                             dd| | f¬¦  «        }7t           j                             dd| ¦  «        }8t           j                             dd| | f¦  «        }9t           j                             dd| | f¬¦  «        }:t           j                             dd| ¦  «        };t           j                             dd| | f¦  «        }<t           j                             dd| | f¬¦  «        }=t           j                             dd| ¦  «        }>t           j                             dd| | f¦  «        }?t           j                             dd| | f¬¦  «        }@t           j                             dd| ¦  «        }At           j                             dd| | f¦  «        }Bt           j                             dd| | f¬¦  «        }Ct           j                             ddd| ¦  «        }Dt           j                             ddd| | f¦  «        }Et           j                             ddd| | f¬¦  «        }Fd S )N)Úsizer
  gš™™™™™¹?r   r1   rm  )rî   ÚrandomÚrandÚrandnÚranfÚrandom_sampleÚsampleÚstandard_normalÚ	chisquareÚweibullÚpowerÚ	geometricÚexponentialÚpoissonÚrayleighÚnormalÚuniformÚbetaÚbinomialr%  ÚgammaÚ	lognormalÚlaplaceÚrandintÚ
triangular)Gr3   Úa0Úa1Úb0Úb1Úc0Úc1Úc2Úd0Úd1Úd2Úe0Úe1Úe2Úf0Úf1Úf2Úg0Úg1Úg2Úh0Úh1Úh2Úi0Úi1Úi2Új0Új1Új2Úk0Úk1Úk2Úl0Úl1Úl2Úm0Úm1Úm2Ún0Ún1Ún2Úo0Úo1Úo2Úp0Úp1Úp2Úq0Úq1Úq2Úr0Úr1Úr2Ús0rK   rP   Út0Út1Út2Úu0Úu1Úu2Úv0Úv1Úv2Úw0Úw1Úw2Úx0Úx1Úx2sG                                                                          r4   Útest_randomz7TestArrayAnalysis.test_numpy_calls.<locals>.test_randomú  s7  € Ý”—’ Ñ"Ô"ˆBÝ”—’  1Ñ%Ô%ˆBÝ”—’ Ñ#Ô#ˆBÝ”—’  AÑ&Ô&ˆBÝ”—’ Ñ"Ô"ˆBÝ”—’  A Ñ'Ô'ˆBÝ”—’ a¨ V�Ñ,Ô,ˆBÝ”×(Ò(¨Ñ+Ô+ˆBÝ”×(Ò(¨!¨Q¨Ñ0Ô0ˆBÝ”×(Ò(¨q°!¨fÐ(Ñ5Ô5ˆBÝ”×!Ò! !Ñ$Ô$ˆBÝ”×!Ò! 1 a &Ñ)Ô)ˆBÝ”×!Ò!¨¨1 vÐ!Ñ.Ô.ˆBÝ”×!Ò! !Ñ$Ô$ˆBÝ”×!Ò! 1 a &Ñ)Ô)ˆBÝ”×!Ò!¨¨1 vÐ!Ñ.Ô.ˆBÝ”×*Ò*¨1Ñ-Ô-ˆBÝ”×*Ò*¨A¨q¨6Ñ2Ô2ˆBÝ”×*Ò*°°A°Ð*Ñ7Ô7ˆBÝ”×$Ò$ R¨Ñ+Ô+ˆBÝ”×$Ò$ R¨!¨Q¨Ñ0Ô0ˆBÝ”×$Ò$ R¨q°!¨fÐ$Ñ5Ô5ˆBÝ”×"Ò" 2 qÑ)Ô)ˆBÝ”×"Ò" 2¨¨1 vÑ.Ô.ˆBÝ”×"Ò" 2¨Q°¨FÐ"Ñ3Ô3ˆBÝ”—’  QÑ'Ô'ˆBÝ”—’  a¨ VÑ,Ô,ˆBÝ”—’ ¨1¨a¨&�Ñ1Ô1ˆBÝ”×$Ò$ S¨!Ñ,Ô,ˆBÝ”×$Ò$ S¨1¨a¨&Ñ1Ô1ˆBÝ”×$Ò$ S°°1¨vÐ$Ñ6Ô6ˆBÝ”×&Ò& r¨1Ñ-Ô-ˆBÝ”×&Ò& r¨A¨q¨6Ñ2Ô2ˆBÝ”×&Ò& r°°A°Ð&Ñ7Ô7ˆBÝ”×"Ò" 2 qÑ)Ô)ˆBÝ”×"Ò" 2¨¨1 vÑ.Ô.ˆBÝ”×"Ò" 2¨Q°¨FÐ"Ñ3Ô3ˆBÝ”×#Ò# B¨Ñ*Ô*ˆBÝ”×#Ò# B¨¨A¨Ñ/Ô/ˆBÝ”×#Ò# B¨a°¨VÐ#Ñ4Ô4ˆBÝ”×!Ò! ! Q¨Ñ*Ô*ˆBÝ”×!Ò! ! Q¨¨A¨Ñ/Ô/ˆBÝ”×!Ò! ! Q¨a°¨VÐ!Ñ4Ô4ˆBÝ”×"Ò" 1 a¨Ñ+Ô+ˆBÝ”×"Ò" 1 a¨!¨Q¨Ñ0Ô0ˆBÝ”×"Ò" 1 a¨q°!¨fÐ"Ñ5Ô5ˆBÝ”—’  Q¨Ñ*Ô*ˆBÝ”—’  Q¨¨A¨Ñ/Ô/ˆBÝ”—’  Q¨a°¨V�Ñ4Ô4ˆBÝ”×#Ò# A q¨!Ñ,Ô,ˆBÝ”×#Ò# A q¨1¨a¨&Ñ1Ô1ˆBÝ”×#Ò# A q°°1¨vÐ#Ñ6Ô6ˆBÝ”—’˜S ! QÑ'Ô'ˆBÝ”—’˜S ! a¨ VÑ,Ô,ˆBÝ”—’˜S !¨1¨a¨&�Ñ1Ô1ˆBÝ”—’  a¨Ñ+Ô+ˆBÝ”—’  a¨!¨Q¨Ñ0Ô0ˆBÝ”—’  a¨q°!¨f�Ñ5Ô5ˆBÝ”×$Ò$ Q¨¨1Ñ-Ô-ˆBÝ”×$Ò$ Q¨¨A¨q¨6Ñ2Ô2ˆBÝ”×$Ò$ Q¨°°A°Ð$Ñ7Ô7ˆBÝ”×"Ò" 1 a¨Ñ+Ô+ˆBÝ”×"Ò" 1 a¨!¨Q¨Ñ0Ô0ˆBÝ”×"Ò" 1 a¨q°!¨fÐ"Ñ5Ô5ˆBÝ”×"Ò" 1 b¨!Ñ,Ô,ˆBÝ”×"Ò" 1 b¨1¨a¨&Ñ1Ô1ˆBÝ”×"Ò" 1 b°°1¨vÐ"Ñ6Ô6ˆBÝ”×%Ò% b¨!¨R°Ñ3Ô3ˆBÝ”×%Ò% b¨!¨R°!°Q°Ñ8Ô8ˆBÝ”×%Ò% b¨!¨R°q¸!°fÐ%Ñ=Ô=ˆBˆBˆBr6   r™   r1   c                 ó2   — g | ]}t          |¦  «        d z   ‘ŒS )Ú0©Úchr©Ú.0r™   s     r4   ú
<listcomp>z6TestArrayAnalysis.test_numpy_calls.<locals>.<listcomp>C  s"   € ÐIÐIÐI¨a�S ™VœV c™\ÐIÐIÐIr6   c                 ó2   — g | ]}t          |¦  «        d z   ‘ŒS ©Ú1r  r  s     r4   r  z6TestArrayAnalysis.test_numpy_calls.<locals>.<listcomp>D  s"   € Ð MÐ MÐ M°!¥ Q¡¤¨#¡Ð MÐ MÐ Mr6   c                 ó2   — g | ]}t          |¦  «        d z   ‘ŒS r
  r  r  s     r4   r  z6TestArrayAnalysis.test_numpy_calls.<locals>.<listcomp>E  s"   € Ð?Ð?Ð? A•3�q‘6”6˜C‘<Ð?Ð?Ð?r6   c                 ó  — t          j        | ¦  «        }t          j        |¦  «        }t          j        ||f¦  «        }t          j        d|f¦  «        }t          j        d|f¦  «        }t          j        ||f¦  «        }t          j        | df¦  «        }t          j        | df¦  «        }	t          j        ||	fd¬¦  «        }
t          j        | |f¦  «        }t          j        | |f¦  «        }t          j        ||f¦  «        }d S )Nr  r<   r1   ©Úaxis)rî   r  Úconcatenate)rð   r3   rB   rC   rD   rE   rF   r%  rÔ   Újr‹  r<  Úor  s                 r4   Útest_concatenatez<TestArrayAnalysis.test_numpy_calls.<locals>.test_concatenateJ  sÙ   € Ý”˜‘
”
ˆAÝ”˜‘
”
ˆAÝ”  1˜vÑ&Ô&ˆAÝ”˜˜A˜‘”ˆAÝ”˜˜A˜‘”ˆAÝ”  1˜vÑ&Ô&ˆAõ ”˜˜A˜‘”ˆAÝ”˜˜A˜‘”ˆAÝ”  1˜v¨AÐ.Ñ.Ô.ˆAÝ”˜˜A˜‘”ˆAÝ”˜˜A˜‘”ˆAÝ”  1˜vÑ&Ô&ˆAˆAˆAr6   )r!  r3   r‹  )rð   r!  r  c                  ó²  — t          j        d¦  «        } t          j        d¦  «        }t          j        d¦  «        }t          j        | | f¦  «        }t          j        ||f¦  «        }t          j        | | f¦  «        }t          j        ||f¦  «        }t          j        | | f¦  «        }t          j        ||f¦  «        }t          j        ||f¦  «        }	d S )N)r  ©r  r<   )r  r<   r=   )rî   r  ÚvstackÚhstackÚdstack)
r‹  r<  r  r  r  rQ   rä   r  r_  r`  s
             r4   Útest_vsd_stackz:TestArrayAnalysis.test_numpy_calls.<locals>.test_vsd_stacke  s´   € Ý”˜‘”ˆAÝ”˜‘”ˆAÝ”˜	Ñ"Ô"ˆAÝ”	˜1˜a˜&Ñ!Ô!ˆAÝ”	˜1˜a˜&Ñ!Ô!ˆAÝ”	˜1˜a˜&Ñ!Ô!ˆAÝ”	˜1˜a˜&Ñ!Ô!ˆAÝ”	˜1˜a˜&Ñ!Ô!ˆAÝ”	˜1˜a˜&Ñ!Ô!ˆAÝ”	˜1˜a˜&Ñ!Ô!ˆAˆAˆAr6   r:   )r  r  r  )r=   r<   rQ   )r=   rä   )r  é   r  )r1   r  r  r_  )r  r<   r  r`  )r  r<   r]  c                 óÆ  — t          j        | ¦  «        }t          j        |¦  «        }t          j        ||f¦  «        }t          j        | |f¦  «        }t          j        | |f¦  «        }t          j        ||f¦  «        }t          j        ||fd¬¦  «        }t          j        ||fd¬¦  «        }	t          j        ||fd¬¦  «        }
t          j        ||fd¬¦  «        }d S )Nr   r  r1   r  r"  )rî   r  Ústack)rð   r3   rB   rC   rD   rE   rF   r%  r*  ÚhrÔ   r  s               r4   Ú
test_stackz6TestArrayAnalysis.test_numpy_calls.<locals>.test_stack{  sÈ   € Ý”˜‘
”
ˆAÝ”˜‘
”
ˆAÝ”˜!˜Q˜Ñ Ô ˆAÝ”˜˜A˜‘”ˆAÝ”˜˜A˜‘”ˆAÝ”˜!˜Q˜Ñ Ô ˆAÝ”˜!˜Q˜ aÐ(Ñ(Ô(ˆAÝ”˜!˜Q˜ aÐ(Ñ(Ô(ˆAÝ”˜!˜Q˜ aÐ(Ñ(Ô(ˆAÝ”˜!˜Q˜ bÐ)Ñ)Ô)ˆAˆAˆAr6   rð   )r  rð   r*  )r  rð   r3   r  )rð   r  r3   rÔ   r  )rð   r3   r  c                 ó\   — t          j        | |¦  «        }t          j        | |d¦  «        }d S r	  )rî   Úlinspacerú   s       r4   Útest_linspacez9TestArrayAnalysis.test_numpy_calls.<locals>.test_linspace’  s*   € Ý”˜A˜qÑ!Ô!ˆAÝ”˜A˜q "Ñ%Ô%ˆAˆAˆAr6   )é2   )r
  c                 óÂ  — t          j        t          j        d¦  «        t          j        d¦  «        ¦  «        }t          j        t          j        d¦  «        t          j        d¦  «        ¦  «        }t          j        t          j        d¦  «        t          j        d¦  «        ¦  «        }t          j        t          j        d¦  «        t          j        d¦  «        ¦  «        }t          j        t          j        ||f¦  «        t          j        ||f¦  «        ¦  «        }t          j        t          j        ||f¦  «        t          j        | | f¦  «        ¦  «        }d S )Nr1   r  r  )r1   r  r;   )rî   Údotr  )	r<  rð   r3   rB   rC   rF   r  rÔ   r  s	            r4   Útest_dotz4TestArrayAnalysis.test_numpy_calls.<locals>.test_dot›  sà   € Ý”•r”w˜q‘z”z¥2¤7¨1¡:¤:Ñ.Ô.ˆAÝ”•r”w˜q‘z”z¥2¤7¨6¡?¤?Ñ3Ô3ˆAõ ”•r”w˜v‘”­¬°©¬Ñ4Ô4ˆAõ ”•r”w˜v‘”­¬°©¬Ñ8Ô8ˆAÝ”•r”w  1˜v‘”­¬°°A°©¬Ñ8Ô8ˆAÝ”•r”w  1˜v‘”­¬°°A°©¬Ñ8Ô8ˆAˆAˆAr6   rò   )r<   )r  r=   )rð   rð   r<  c                 ó    — t          j        | |f¦  «        }t          j        |¦  «        }||z   }t          j        d|f¦  «        }||z   |z
  }d S r0   rS  )rð   r3   rB   rC   rD   rE   rF   s          r4   Útest_broadcastz:TestArrayAnalysis.test_numpy_calls.<locals>.test_broadcast²  sK   € Ý”˜˜A˜‘”ˆAÝ”˜‘
”
ˆAØ�A‘ˆAÝ”˜˜A˜‘”ˆAØ�A‘˜‘	ˆAˆAˆAr6   c                  ój   — t          j        t          ¦  «        } t          j        t          ¦  «        }d S rZ   )rî   r  ÚGVAL2)rB   rC   s     r4   Útest_global_tuplez=TestArrayAnalysis.test_numpy_calls.<locals>.test_global_tuple½  s    € Ý”�‘”ˆAÝ”�‘”ˆAˆAˆAr6   )r¤   r   rB  rÛ   rà   ré   ræ   rC  ÚordrÑ   Úfloat64rÈ   )r2   rw  r{  r}  r€  r†  r‰  r�  r”  r–  r›  rŸ  r£  r  ÚlastÚvars1dÚvars2dr  r  r  r!  r%  r'  r*  s                           r4   Útest_numpy_callsz"TestArrayAnalysis.test_numpy_callsz  st
  € ð	'ð 	'ð 	'ð 	×Ò˜z­E¬J¨=Ø'+§¢°s¸CÑ'@Ô'@Ø'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸CÑ'@Ô'@ð'Bð 	ñ 	Cô 	Cð 	Cð
	ð 	ð 	ð 	×Ò˜}­u¬z¨mØ'+×'9Ò'9¸#¸sÑ'CÔ'CÐ&DØ(,×(>Ò(>¸sÑ(CÔ(CÐ'Dð 	ñ 	Fô 	Fð 	Fð	&ð 	&ð 	&ð 	×Ò˜y­5¬:¨-Ø'+§¢°s¸CÑ'@Ô'@Ø'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸CÑ'@Ô'@ð'Bð 	ñ 	Cô 	Cð 	Cð
	'ð 	'ð 	'ð 	×Ò˜z­E¬J¨=Ø'+§¢°s¸CÑ'@Ô'@Ø'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸CÑ'@Ô'@ð'Bð 	ñ 	Cô 	Cð 	Cð
	%ð 	%ð 	%ð
 	×Ò˜x­%¬*¨Ø'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸CÑ'@Ô'@Ø'+×'9Ò'9¸#¸sÑ'CÔ'Cð'Eð 	ñ 	Fô 	Fð 	Fð	ð 	ð 	à×Ò˜}­u¬z¨mØ'+§¢°s¸JÑ'GÔ'GÐ&Hð 	ñ 	Jô 	Jð 	Jð	 ð 	 ð 	 ð
 	×Ò˜y­5¬:¨-Ø'+§¢°s¸FÑ'CÔ'CØ'+§¢°s¸JÑ'GÔ'Gð'Ià(,×(;Ò(;¸CÑ(@Ô(@Ø(,×(>Ò(>¸sÑ(CÔ(Cð(Eð 	ñ 	Fô 	Fð 	Fð	%ð 	%ð 	%ð 	×Ò˜µ´½U¼ZÈÈCÑ1PÔ1PÐ0Rà#'§?¢?°3¸¸SÀ#ÀsÑ#KÔ#Kð'Mà(,×(;Ò(;¸CÑ(@Ô(@Ø(,×(>Ò(>¸sÑ(CÔ(Cð(Eð 	ñ 	Fô 	Fð 	Fð	%ð 	%ð 	%ð 	×Ò˜|­e¬j¨]Ø'+§¢°s¸JÑ'GÔ'GÐ&HØ(,×(>Ò(>¸sÑ(CÔ(CÐ'Dð 	ñ 	Fô 	Fð 	Fð
	ð 	ð 	ð 	×Ò˜~µ´
½E¼JÐ/GØ'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸JÑ'GÔ'Gð'Ið 	ñ 	Jô 	Jð 	Jð	&ð 	&ð 	&ð 	×ÒÐ0µ5´:½u¼zÍ5Ì:Ð2VØ'+§¢°s¸OÑ'LÔ'LØ'+§¢°s¸OÑ'LÔ'LØ'+§¢°s¸OÑ'LÔ'LØ'+§¢°s¸OÑ'LÔ'LØ'+§¢°t¸_Ñ'MÔ'MØ'+§¢°s¸OÑ'LÔ'LØ'+§¢°t¸_Ñ'MÔ'Mð'Oð 	ñ 	Pô 	Pð 	Pð	ð 	ð 	ð
 	×ÒÐ2µU´ZÅÄÐ4LØ'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸JÑ'GÔ'Gð')ð 	ñ 	*ô 	*ð 	*ðF	>ð F	>ð F	>õP �3‰xŒx˜!‰|ˆØ�ÐIÐIµ5½¸S¹¼À4Ñ3HÔ3HÐIÑIÔIÑIˆØ�Ð MÐ Mµu½SÀ¹X¼XÀtÑ7LÔ7LÐ MÑ MÔ MÑMˆØÐ?Ð?­­s°3©x¬x¸Ñ)>Ô)>Ð?Ñ?Ô?Ñ?ˆØ×Ò˜{­U¬Z¨MØ'6 t¤¸Ð'?Ø'6 t¤¸Ð'?ð'Að 	ñ 	Bô 	Bð 	Bð	'ð 	'ð 	'ð$ 	×ÒÐ/µ%´*½e¼jÐ1IØ'+§¢°s¸HÑ'EÔ'Eà'+§¢°s¸HÑ'EÔ'Eð'Gð )-×(;Ò(;¸CÑ(@Ô(@Ø(,×(>Ò(>¸sÑ(CÔ(CØ(,×(>Ò(>¸sÑ(CÔ(CØ(,×(;Ò(;¸CÑ(@Ô(@ð(Bð	 	ñ 	Cô 	Cð 	Cð
	"ð 
	"ð 
	"ð 	×Ò˜~¨rØ'+§¢°s¸FÑ'CÔ'CØ'+§¢°s¸FÑ'CÔ'CØ'+§¢°s¸DÑ'AÔ'AØ'+§¢°s¸FÑ'CÔ'CØ'+§¢°s¸IÑ'FÔ'FØ'+§¢°s¸IÑ'FÔ'FØ'+§¢°s¸IÑ'FÔ'Fð')ð 	ñ 	*ô 	*ð 	*ð
	*ð 
	*ð 
	*ð 	×Ò˜z­E¬J½¼
Ð+CØ(,¯ª¸¸SÑ(AÔ(AØ(,¯ª¸¸XÑ(FÔ(FØ(,¯ªØ$'¨¨mñ)=ô )=à�OŠOØ$'¨ñ8ô 8à�OŠOØ$'¨¨mñ=ô =ð(
ð 	ñ 		ô 		ð 		ð	&ð 	&ð 	&ð
 	×Ò˜}­u¬}½e¼mÐ.LØ'+§¢°s¸EÑ'BÔ'BØ'+§¢°s¸EÑ'BÔ'Bð'Dð 	ñ 	Eô 	Eð 	Eð	9ð 	9ð 	9ð 	×Ò˜x­%¬*µe´jÅ%Ä*Ð)MØ'+×'9Ò'9¸#¸tÑ'DÔ'DØ'+§¢°s¸DÑ'AÔ'AØ'+§¢°s¸DÑ'AÔ'AØ'+§¢°s¸FÑ'CÔ'CØ'+§¢°s¸JÑ'GÔ'GØ'+§¢°s¸JÑ'GÔ'Gð')ð )-×(8Ò(8¸¸cÑ(BÔ(BÐ'Cð 	ñ 	Eô 	Eð 	Eð	ð 	ð 	ð 	×Ò˜~µ´
½E¼JÐ/GØ'+§¢°s¸CÀÑ'EÔ'EÐ&FØ'+ð 	ñ 	-ô 	-ð 	-ð
	ð 	ð 	ð 	×ÒÐ0°"Ø'+§¢°s¸CÑ'@Ô'@Ð&AØ'+ð 	ñ 	-ô 	-ð 	-ð 	-ð 	-r6   )NNT)r7   r8   r9   r–   r¤   r¸   rÂ   rœ   rÈ   rÌ   rÛ   rà   ræ   ré   rL  rb  rs  r   r0  r:   r6   r4   rŒ   rŒ   ®   s$  € € € € € ð0ð 0ð 0ð9ð 9ð 9ð 9ð*	ð 	ð 	ð
ð 
ð 
ðð ð ð:ð :ð :ð:ð :ð :ðCð Cð CðCð Cð CðSð Sð SðTð Tð TðS2ð S2ð S2ðl'Eð 'Eð 'EðRl1ð l1ð l1ð\ ðH-ð H-ñ ÔðH-ð H-ð H-r6   rŒ   c                   óš   — e Zd ZdZdZed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zd	S )
Ú!TestArrayAnalysisParallelRequiredzkThis is to just split out tests that need the parallel backend and
    therefore serialised execution.
    Fc                 ó´   ‡— t           d„ ¦   «         Šˆfd„}	  t          |d¬¦  «        d¦  «         d S # t          $ r |                      d¦  «         Y d S w xY w)Nc                 ó
   — || fS rZ   r:   )r™   rÀ   s     r4   Úswapz9TestArrayAnalysisParallelRequired.test_misc.<locals>.swapÐ  s   € à�a�&ˆLr6   c                 ó¾   •— t          j        | ¦  «        }t          j        | ¦  «        }t          | ¦  «        D ]#} ‰||         ||         ¦  «        \  ||<   ||<   Œ$d S rZ   )rî   r  rÑ   )rð   rB   rC   rÔ   r5  s       €r4   Útest_bug2537zATestArrayAnalysisParallelRequired.test_misc.<locals>.test_bug2537Ô  sc   ø€ Ý”˜‘
”
ˆAÝ”˜‘
”
ˆAÝ˜1‘X”Xð .ð .�Ø!˜T ! A¤$¨¨!¬Ñ-Ô-‘
��!‘�a˜‘d�dð.ð .r6   T©Úparallelr
  ztest_bug2537 raised IndexError!)r   Ú
IndexErrorÚfail)r2   r7  r5  s     @r4   Ú	test_miscz+TestArrayAnalysisParallelRequired.test_miscÍ  s–   ø€ õ 
ð	ð 	ñ 
Œð	ð	.ð 	.ð 	.ð 	.ð 	.ð	9Ø-�D�¨Ð-Ñ-Ô-¨bÑ1Ô1Ð1Ð1Ð1øÝð 	9ð 	9ð 	9Ø�IŠIÐ7Ñ8Ô8Ð8Ð8Ð8Ð8ð	9øøøs   ˜4 ´AÁAc                 ó´   ‡— t          ddg¦  «        } |d¦  «        Šˆfd„}|                       t          |d¬¦  «        ¦   «          |¦   «         ¦  «         d S )NÚRowr  r<   c                  ó*   •— ‰} | j         }|dk    rd}|S )Nr  r<   )r  )ÚrrÚresÚrows     €r4   Ú	test_implzKTestArrayAnalysisParallelRequired.test_global_namedtuple.<locals>.test_implä  s"   ø€ ØˆBØ”$ˆCØ�aŠxˆxØ�ØˆJr6   Tr8  )r   ÚassertEqualr   )r2   r>  rC  rB  s      @r4   Útest_global_namedtuplez8TestArrayAnalysisParallelRequired.test_global_namedtupleß  st   ø€ å˜  Ñ&Ô&ˆØˆc�!‰fŒfˆð	ð 	ð 	ð 	ð 	ð 	×ÒÐ7�˜i°$Ð7Ñ7Ô7Ñ9Ô9¸9¸9¹;¼;ÑGÔGÐGÐGÐGr6   c                 ó  — d„ }d}t          |¦  «        }t          j        |j        ¦  «        }t          j        |j        ¦  «        }|                       t          |d¬¦  «        ||¦  «         |||¦  «        ¦  «         d S )Nc                 ób   — t          | j        ¦  «        D ]}|||<   Œ|                     ¦   «         S rZ   )r   r,   r  )Út_objÚXrÔ   s      r4   rC  zLTestArrayAnalysisParallelRequired.test_array_T_issue_3700.<locals>.test_implð  s1   € Ý˜EœG‘_”_ð ð �Ø��!‘�Ø—5’5‘7”7ˆNr6   r!  Tr8  )r.   rî   rï   r,   rD  r   )r2   rC  r3   rH  ÚX1ÚX2s         r4   Útest_array_T_issue_3700z9TestArrayAnalysisParallelRequired.test_array_T_issue_3700í  s˜   € ð	ð 	ð 	ð
 ˆÝ  Ñ#Ô#ˆÝŒX�e”gÑÔˆÝŒX�e”gÑÔˆØ×ÒØ*�D� TÐ*Ñ*Ô*¨5°"Ñ5Ô5°y°yÀÈÑ7KÔ7Kñ	Mô 	Mð 	Mð 	Mð 	Mr6   c                 óH  — d„ }|                        t          |d¬¦  «        ¦   «          |¦   «         ¦  «         d„ }t          j        d¦  «        }t	          d ¦  «        }t          j                              t          |d¬¦  «        ||¦  «         |||¦  «        ¦  «         d S )Nc                  ó&   — t          d d ¦  «        } dS rp   )ÚslicerP  s    r4   Ú
test_impl1zQTestArrayAnalysisParallelRequired.test_slice_shape_issue_3380.<locals>.test_impl1ÿ  s   € Ý�d˜DÑ!Ô!ˆAØ�4r6   Tr8  c                 ó   — |}| |         S rZ   r:   )r  rB   rC   s      r4   Ú
test_impl2zQTestArrayAnalysisParallelRequired.test_slice_shape_issue_3380.<locals>.test_impl2  s   € ØˆAØ�Q”4ˆKr6   r
  )rD  r   rî   r^  rO  ÚtestingÚassert_array_equal)r2   rP  rR  r  rB   s        r4   Útest_slice_shape_issue_3380z=TestArrayAnalysisParallelRequired.test_slice_shape_issue_3380ü  sÁ   € ð	ð 	ð 	ð 	×ÒÐ8�˜j°4Ð8Ñ8Ô8Ñ:Ô:¸J¸J¹L¼LÑIÔIÐIð	ð 	ð 	õ ŒI�b‰MŒMˆÝ�$‰KŒKˆÝ
Œ
×%Ò%Ø+�D� dÐ+Ñ+Ô+¨A¨qÑ1Ô1°:°:¸aÀÑ3CÔ3Cñ	Eô 	Eð 	Eð 	Eð 	Er6   c                 óØ   — t          d¬¦  «        d„ ¦   «         }t          j        d¦  «        }t          j                              ||¦  «        |                     |¦  «        ¦  «         d S )NTr8  c                 óò   — | j         d         }t          j        |¦  «        }t          |¦  «        D ]E}t          j        | t          j        d¦  «        t          j        d¦  «        …         ¦  «        ||<   ŒF|S rì   )r»   rî   rï   r   r  Úint32)Údatar‚  ÚsumsrÔ   s       r4   rC  zPTestArrayAnalysisParallelRequired.test_slice_dtype_issue_5056.<locals>.test_impl  se   € à”
˜1”ˆAÝ”8˜A‘;”;ˆDÝ˜A‘Y”Yð @ð @�Ýœ& ¥b¤h¨q¡k¤kµ"´(¸1±+´+Ð&=Ô!>Ñ?Ô?��Q‘�ØˆKr6   g      $@)r   rî   r^  rS  rT  Úpy_func)r2   rC  rY  s      r4   Útest_slice_dtype_issue_5056z=TestArrayAnalysisParallelRequired.test_slice_dtype_issue_5056  sl   € õ 
�tÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ Œy˜‰~Œ~ˆÝ
Œ
×%Ò% i i°¡o¤o°y×7HÒ7HÈÑ7NÔ7NÑOÔOÐOÐOÐOr6   c                 óv   — d„ }|                        t          |d¬¦  «        ¦   «          |¦   «         ¦  «         dS )zimake sure a global tuple with non-integer values does not cause errors
        (test for #6726).
        c                  ó    — t           d         } | S r-  )ÚGVAL)rE   s    r4   rC  zFTestArrayAnalysisParallelRequired.test_global_tuple.<locals>.test_impl#  s   € Ý�Q”ˆAØˆHr6   Tr8  N)rD  r   )r2   rC  s     r4   r*  z3TestArrayAnalysisParallelRequired.test_global_tuple  sK   € ð	ð 	ð 	ð 	×ÒÐ7�˜i°$Ð7Ñ7Ô7Ñ9Ô9¸9¸9¹;¼;ÑGÔGÐGÐGÐGr6   N)r7   r8   r9   rS   Ú_numba_parallel_test_Úskip_unsupportedr<  rE  rL  rU  r\  r*  r:   r6   r4   r2  r2  Æ  sÝ   € € € € € ðð ð "Ðàð9ð 9ñ Ôð9ð" ðHð Hñ ÔðHð ðMð Mñ ÔðMð ðEð Eñ ÔðEð" ðPð Pñ ÔðPð ð	Hð 	Hñ Ôð	Hð 	Hð 	Hr6   r2  c                   ó*   — e Zd Zd„ Zed„ ¦   «         ZdS )ÚTestArrayAnalysisInterfacec                 ó¦  — i }t          t          ¦  «        D ]/}|                     d¦  «        rt          t          |¦  «        ||<   Œ0d„ }t	          j        |¦  «        }|                     ¦   «         D ]^\  }}t	          j        |¦  «        }|                      ||¬¦  «        5  |                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   Œ_d S )NÚ_analyze_op_call_c                 ó   — d S rZ   r:   )r2   ÚscoperÓ   Úlocrv   Úkwss         r4   Ú
iface_stubzMTestArrayAnalysisInterface.test_analyze_op_call_interface.<locals>.iface_stub2  s   € ØˆDr6   )ÚfnameÚsig)	Údirr   r²   rº   r   Úpysignaturer¬   ÚsubTestrD  )r2   Úaocrk  rj  Úexpectedr‹  r`  Úgots           r4   Útest_analyze_op_call_interfacez9TestArrayAnalysisInterface.test_analyze_op_call_interface+  s  € àˆÝ�Ñ'Ô'ð 	;ð 	;ˆEØ×ÒÐ 3Ñ4Ô4ð ;Ý$¥]°EÑ:Ô:��E‘
øð	ð 	ð 	åÔ$ ZÑ0Ô0ˆØ—I’I‘K”Kð 	0ð 	0‰DˆAˆqÝÔ# AÑ&Ô&ˆCØ—’ A¨3�Ñ/Ô/ð 0ð 0Ø× Ò   hÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0øð	0ð 	0s   Â"CÃC		ÃC		c                 óø  ‡ ‡‡	‡
‡— ddl m} ddlm} |j        |         Š	ddiŠ
ˆˆ ˆ
fd„Šˆ	ˆfd„}	 ||j        |<   t
          j        Šˆfd„}  t          d¬	¦  «        |¦  «        d
¦  «        }‰
d         }‰                      |d¦  «         ‰	|j        |<   n# ‰	|j        |<   w xY w  t          d¬	¦  «        |¦  «        d
¦  «        }‰  	                    ||¦  «         ‰  
                    |‰
d         ¦  «         d S )Nr   )ÚParfor)r`   Úcounterc                 ó¾  •— | j         }|j        d                              d¦  «        D ]Q}|                     |j        ¦  «        }t          |dd ¦  «        ‰u r"t          |j        d         dd ¦  «        dk    r nŒRd S |                     |¦  «        }| j        d         }‰ 	                    | 
                    d|j        ¦  «        ¦  «         ‰dxx         dz  cc<   d S )Nr   r¦   r¾   r‡   r3   rv  r1   )r]   rb   r­   r®   r†   rº   rv   Úget_assigneer›   rH   rI   r‡   )	r`   r]   r¦   ÚcalleeÚ
variable_AÚesr  r2   Úshareds	         €€€r4   ÚtestcodezKTestArrayAnalysisInterface.test_array_analysis_extensions.<locals>.testcodeE  sç   ø€ à$Ô,ˆGØœ qÔ)×4Ò4°VÑ<Ô<ð ð �Ø ×/Ò/°´	Ñ:Ô:�Ý˜6 7¨DÑ1Ô1°UÐ:Ð:Ý˜tœy¨œ|¨V°TÑ:Ô:¸cÒAÐAØ˜øà�à ×-Ò-¨dÑ3Ô3ˆJàÔ*¨1Ô-ˆBØ�OŠO˜BŸKšK¨¨Z¬_Ñ=Ô=Ñ>Ô>Ð>Ø�9ÐÐÔ Ñ"ÐÐÑÐÐr6   c                 ó6   •—  ‰|¦  «          ‰| |||¦  «        S )z7Recursive array analysis for parfor nodes.
            r:   )ÚparforrÓ   r^   r`   Úorig_parforr}  s       €€r4   Ú
new_parforzMTestArrayAnalysisInterface.test_array_analysis_extensions.<locals>.new_parforV  s2   ø€ ð ˆH�^Ñ$Ô$Ð$à�;Ø˜	 7¨Nñô ð r6   c                 óž   •—  ‰| ¦  «        }t          | ¦  «        D ]-}t          j        |¦  «        }|                     ¦   «         ||<   Œ.|dz   S r0   )r   rî   r^  r  )r3   r  rÔ   r1  r  s       €r4   r%  zDTestArrayAnalysisInterface.test_array_analysis_extensions.<locals>.fd  sN   ø€ Ø�E˜!‘H”H�Ý ™œð #ð #�AÝœ	 !™œ�AØŸ5š5™7œ7�A�a‘D�DØ˜1‘u�r6   Tr8  r
  )Únumba.parfors.parforru  Únumba.parforsr`   Úarray_analysis_extensionsrî   r  r   ÚassertGreaterÚassertPreciseEqualrD  )r2   ru  r`   r�  r%  rr  Úexecuted_countrq  r  r€  r|  r}  s   `       @@@@r4   Útest_array_analysis_extensionsz9TestArrayAnalysisInterface.test_array_analysis_extensions:  s‰  øøøøø€ ð 	0Ð/Ð/Ð/Ð/Ð/Ø0Ð0Ð0Ð0Ð0Ð0à$Ô>¸vÔFˆà˜Q�ˆð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð"	ð 	ð 	ð 	ð 	ð 	ð	Kà?IˆNÔ4°VÑ<å”HˆEðð ð ð ð ð )Ð%•$ Ð%Ñ%Ô% aÑ(Ô(¨Ñ,Ô,ˆCØ# IÔ.ˆNØ×Ò˜~¨qÑ1Ô1Ð1ð @KˆNÔ4°VÑ<Ð<ø¸{ˆNÔ4°VÑ<ÐJÐJÐJÐJð *Ð&•4 Ð&Ñ&Ô& qÑ)Ô)¨"Ñ-Ô-ˆØ×Ò  XÑ.Ô.Ð.à×Ò˜¨°	Ô):Ñ;Ô;Ð;Ð;Ð;s   ±AB ÂB#N)r7   r8   r9   rs  ra  r‰  r:   r6   r4   rc  rc  *  s?   € € € € € ð0ð 0ð 0ð ð;<ð ;<ñ Ôð;<ð ;<ð ;<r6   rc  Ú__main__)GÚ	itertoolsÚnumpyrî   ÚsysÚcollectionsr   Úior   Únumbar   r   r   Ú
numba.corer   r	   r
   r   r   r   r   r   Únumba.tests.supportr   r   r   r   Únumba.parfors.array_analysisr   r   Únumba.core.compilerr   r   r   Únumba.core.ir_utilsr   Únumba.core.untyped_passesr   r   r   r   r   r   r    r!   r"   r#   Únumba.core.typed_passesr$   r%   r&   r'   Únumba.core.compiler_machineryr(   r)   Únumba.experimentalr*   Úunittestra  rX  Úobjectr.   r_  r)  r?   rW   rn   rŒ   r2  rc  r7   Úmainr:   r6   r4   ú<module>r�     s/  ðØ Ð Ð Ð à Ð Ð Ð Ø 
€
€
€
Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4à @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø +Ð +Ð +Ð +Ð +Ð +ðJð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð
Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð SÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø €€€ð ,Ð ð 
€ˆC�”Ð  U¤[Ð1Ð
2Ñ3Ô3ðð ð ð ð �vñ ô ñ 4Ô3ðð €Ø€ð$/ð $/ð $/ð $/ð $/�8ñ $/ô $/ð $/ðN €˜U°Ð5Ñ5Ô5ðð ð ð ð ˜ñ ô ñ 6Ô5ðð$<$ð <$ð <$ð <$ð <$˜(ñ <$ô <$ð <$ð~U-ð U-ð U-ð U-ð U-˜ñ U-ô U-ð U-ðpaHð aHð aHð aHð aH¨ñ aHô aHð aHðHL<ð L<ð L<ð L<ð L< ñ L<ô L<ð L<ð^ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr6   