§
    ƒÛglñ ã                   ó‚  — d dl Zd dlmZ d dlZd dlmZmZ d dlmZm	Z	 d dl
mZ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 d dlZeZed	„ ¦   «         Z ed
¬¦  «        d„ ¦   «         Z ed¬¦  «        d„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z ed¬¦  «        d„ ¦   «         Z ed¬¦  «        d„ ¦   «         Z ed„ ¦   «         Z!es ed¬¦  «        d„ ¦   «         Z"e G d„ dej#        ¦  «        ¦   «         Z$ G d„ de$¦  «        Z%e G d„ d e$¦  «        ¦   «         Z&e'd!k    r ej(        ¦   «          dS dS )"é    N)Úcontextmanager)ÚnjitÚstencil)ÚtypesÚregistry)Úcompile_extraÚFlags)ÚParallelOptions)Úskip_parfors_unsupportedÚ_32bitÚskip_m1_llvm_rtdyld_failure)ÚLoweringErrorÚTypingErrorÚNumbaValueErrorc                 óN   — d| d         | d         z   | d         z   | d         z   z  S ©Nç      Ð?©r   é   ©r   r   ©r   éÿÿÿÿ©r   r   © ©Úas    úO/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_stencils.pyÚstencil1_kernelr      s,   € à�1�T”7˜Q˜tœWÑ$ q¨¤xÑ/°!°E´(Ñ:Ñ;Ð;ó    )©éûÿÿÿr   ©Úneighborhoodc                 óX   — | d         }t          dd¦  «        D ]}|| |         z  }Œd|z  S )Nr!   éüÿÿÿr   ç333333Ó?©Úrange)r   ÚcumÚis      r   Ústencil2_kernelr+      s;   € à
ˆBŒ%€CÝ�2�q‰\Œ\ð ð ˆØˆq�Œt‰ˆˆØ�‰9Ðr   ç      ð?©Úcvalc                 ó   — d| d         z  S )Nr   ©éþÿÿÿé   r   r   s    r   Ústencil3_kernelr3   '   s   € à�!�E”(‰?Ðr   c                 ó–   — d| d         | d         z   | d         z   | d         z   |d         z   |d         z   |d         z   |d         z   z  S r   r   ©r   Úbs     r   Ústencil_multiple_input_kernelr7   ,   s`   € à�1�T”7˜Q˜tœWÑ$ q¨¤xÑ/°!°E´(Ñ:Ø�T”7ñØ˜tœWñ%Ø'(¨¤xñ0Ø23°E´(ñ;ñ <ð <r   c                 ó–   — || d         | d         z   | d         z   | d         z   |d         z   |d         z   |d         z   |d         z   z  S ©Nr   r   r   r   r   )r   r6   Úws      r   Ú!stencil_multiple_input_kernel_varr;   2   s`   € à��$”˜!˜Dœ'Ñ! A e¤HÑ,¨q°¬xÑ7Ø�$”ñØ˜Dœ'ñ"Ø$% e¤Hñ-Ø/0°¬xñ8ñ 9ð 9r   c                 ó2   — |d         r| d         n|d         S ©N©r   r   r   )r   r6   Úfs      r   Ú%stencil_multiple_input_mixed_types_2dr@   8   s   € à˜”gÐ*ˆ1ˆTŒ7ˆ7 1 T¤7Ð*r   )r6   )Ústandard_indexingc                 óH   — | d         |d         z  | d         |d         z  z   S )Nr   r   r   r   r5   s     r   Ú!stencil_with_standard_indexing_1drC   =   s%   € àˆRŒ5�1�Q”4‰<˜!˜Aœ$  1¤™+Ñ%Ð%r   c                 ó�   — | d         |d         z  | d         |d         z  z   | d         |d         z  z   | d         |d         z  z   S r9   r   r5   s     r   Ú!stencil_with_standard_indexing_2drE   B   sS   € àˆdŒG�a˜”gÑ  $¤¨!¨D¬'Ñ 1Ñ1Ø�Œh˜˜5œÑ!ñ"Ø$% e¤H¨q°¬xÑ$7ñ8ð 9r   c                 ó   — | dz   S ©Nr   r   r   s    r   Úaddone_njitrH   H   s   € àˆq‰5€Lr   T©Úparallelc                 ó   — | dz   S rG   r   r   s    r   Úaddone_pjitrL   N   s   € à�1‰uˆr   c                   ó@   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )ÚTestStencilBaseFc                 ó€   •— t          ¦   «         | _        d| j        _         t          t          | ¦  «        j        |Ž  d S ©NT)r	   ÚcflagsÚnrtÚsuperrN   Ú__init__)ÚselfÚargsÚ	__class__s     €r   rT   zTestStencilBase.__init__X   s7   ø€ å‘g”gˆŒØˆŒŒà-��o˜tÑ$Ô$Ô-¨tÐ4Ð4Ð4Ð4r   c           	      óh   — t          t          j        j        t          j        j        ||d |i ¦  «        S ©N)r   r   Ú
cpu_targetÚtyping_contextÚtarget_context)rU   ÚfuncÚsigÚflagss       r   Ú_compile_thiszTestStencilBase._compile_this_   s0   € Ý�XÔ0Ô?Ý%Ô0Ô?ÀÀsØ! 5¨"ñ.ô .ð 	.r   c                 óŽ   — t          ¦   «         }d|_        |sdn|}t          |¦  «        |_        |                      |||¦  «        S rP   )r	   rR   r
   Úauto_parallelr`   )rU   r]   r^   Úkwsr_   Úoptionss         r   Úcompile_parallelz TestStencilBase.compile_paralleld   sH   € Ý‘”ˆØˆŒ	Ø!Ð*�$�$ sˆÝ-¨gÑ6Ô6ˆÔØ×!Ò! $¨¨UÑ3Ô3Ð3r   c                 ó<   — |                       ||| j        ¬¦  «        S )N)r_   )r`   rQ   )rU   r]   r^   s      r   Úcompile_njitzTestStencilBase.compile_njitk   s   € Ø×!Ò! $¨°4´;Ð!Ñ?Ô?Ð?r   c                 ó”   — t          d„ |D ¦   «         ¦  «        }|                      ||¦  «        }|                      ||¦  «        }||fS )Nc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   ©ÚnumbaÚtypeof©Ú.0Úxs     r   ú
<listcomp>z/TestStencilBase.compile_all.<locals>.<listcomp>o   ó    € Ð3Ð3Ð3¨•U”\ !‘_”_Ð3Ð3Ð3r   )Útuplere   rg   )rU   ÚpyfuncrV   Úkwargsr^   ÚcpfuncÚcfuncs          r   Úcompile_allzTestStencilBase.compile_alln   sR   € ÝÐ3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4ˆà×&Ò& v¨sÑ3Ô3ˆà×!Ò! &¨#Ñ.Ô.ˆØ�fˆ}Ðr   c                 óŠ  —  | j         |g|¢R Ž \  }} ||Ž } ||Ž } |j        |Ž } |j        |Ž }	t          j                             ||d¬¦  «         t          j                             ||d¬¦  «         t          j                             |	|d¬¦  «         |                      d|j                             ¦   «         ¦  «         d S )Né   ©Údecimalú@do_scheduling)rw   Úentry_pointÚnpÚtestingÚassert_almost_equalÚassertInÚlibraryÚget_llvm_str)
rU   Úno_stencil_funcrs   rV   rv   ru   ÚexpectedÚ	py_outputÚnjit_outputÚparfor_outputs
             r   ÚcheckzTestStencilBase.checkv   sÛ   € Ø(˜Ô(¨Ð7°$Ð7Ð7Ð7‰ˆˆvà"�? DÐ)ˆà�F˜D�Mˆ	ð (�eÔ'¨Ð.ˆð +˜Ô*¨DÐ1ˆå
Œ
×&Ò& y°(ÀAÐ&ÑFÔFÐFÝ
Œ
×&Ò& {°HÀaÐ&ÑHÔHÐHÝ
Œ
×&Ò& }°hÈÐ&ÑJÔJÐJð 	�ŠÐ&¨¬×(CÒ(CÑ(EÔ(EÑFÔFÐFÐFÐFr   )Ú__name__Ú
__module__Ú__qualname__Ú_numba_parallel_test_rT   r`   re   rg   rw   r‰   Ú__classcell__©rW   s   @r   rN   rN   S   s•   ø€ € € € € ð "Ðð5ð 5ð 5ð 5ð 5ð.ð .ð .ð
4ð 4ð 4ð@ð @ð @ðð ð ðGð Gð Gð Gð Gð Gð Gr   rN   c                   óR  ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zˆ xZS )ÚTestStencilc                 óH   •—  t          t          | ¦  «        j        |i |¤Ž d S rY   )rS   r‘   rT   ©rU   rV   rt   rW   s      €r   rT   zTestStencil.__init__�   s+   ø€ Ø)��k˜4Ñ Ô Ô)¨4Ð:°6Ð:Ð:Ð:Ð:Ð:r   c                 óx   — d„ }d„ }d„ }d}|                       |||¦  «         |                       |||¦  «         dS )zHTests whether the optional out argument to stencil calls works.
        c                 óØ   — t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }t	          ||¬¦  «        }|S )Nr2   ©Úout)r~   ÚarangeÚreshapeÚzerosr   ©ÚnÚAÚBs      r   Útest_with_outz0TestStencil.test_stencil1.<locals>.test_with_out”   s_   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”˜˜A™‘”×&Ò&¨¨1 vÑ.Ô.ˆAÝ  qÐ)Ñ)Ô)ˆAØˆHr   c                 ó|   — t          j        | dz  ¦  «                             | | f¦  «        }t          |¦  «        }|S ©Nr2   )r~   r˜   r™   r   r›   s      r   Útest_without_outz3TestStencil.test_stencil1.<locals>.test_without_outš   ó7   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ Ñ"Ô"ˆAØˆHr   c                 óŒ  — t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }t	          d| dz
  ¦  «        D ]W}t	          d| dz
  ¦  «        D ]A}d|||dz   f         ||dz   |f         z   |||dz
  f         z   ||dz
  |f         z   z  |||f<   ŒBŒX|S ©Nr2   r   r   ©r~   r˜   r™   rš   r(   ©rœ   r�   rž   r*   Újs        r   Útest_impl_seqz0TestStencil.test_stencil1.<locals>.test_impl_seqŸ   sð   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”˜˜A™‘”×&Ò&¨¨1 vÑ.Ô.ˆAÝ˜1˜a !™e‘_”_ð Oð O�Ý˜q ! a¡%™œð Oð O�AØ" a¨¨1¨q©5¨¤kØ&'¨¨A©¨q¨¤kñ'2Ø45°a¸¸Q¹°h´Kñ'@ØBCÀAÈÁEÈ1ÀHÄ+ñ'Nñ O�A�a˜�d‘G�GðOð ˆHr   éd   N©r‰   )rU   rŸ   r¢   r©   rœ   s        r   Útest_stencil1zTestStencil.test_stencil1�   si   € ð	ð 	ð 	ð	ð 	ð 	ð
	ð 	ð 	ð ˆØ�
Š
�= -°Ñ3Ô3Ð3Ø�
Š
�=Ð"2°AÑ6Ô6Ð6Ð6Ð6r   c                 ó  — d„ }d„ }d}|                       |||¦  «         d„ }d„ }d}d}|                      |t          j        t          j        f¦  «        } |||¦  «        }|                     ||¦  «        }t
          j                             ||d¬¦  «         |                      d	|j	         
                    ¦   «         ¦  «         d
„ }d}|                      |t          j        t          j        t          j        f¦  «        }|                     |||¦  «        }t
          j                             ||d¬¦  «         |                      d	|j	         
                    ¦   «         ¦  «         d„ }d}|                      |t          j        t          j        t          j        f¦  «        }|                     |||¦  «        }t
          j                             ||d¬¦  «         |                      d	|j	         
                    ¦   «         ¦  «         dS )z`Tests whether the optional neighborhood argument to the stencil
        decorate works.
        c                 óL   — t          j        | ¦  «        }t          |¦  «        }|S rY   )r~   r˜   r+   r›   s      r   Útest_seqz+TestStencil.test_stencil2.<locals>.test_seq±   s!   € Ý”	˜!‘”ˆAÝ Ñ"Ô"ˆAØˆHr   c                 óÜ   — t          j        | ¦  «        }t          j        | ¦  «        }t          dt	          |¦  «        ¦  «        D ]%}dt          ||dz
  |dz   …         ¦  «        z  ||<   Œ&|S )Né   r&   r   ©r~   r˜   rš   r(   ÚlenÚsum©rœ   r�   rž   r*   s       r   r©   z0TestStencil.test_stencil2.<locals>.test_impl_seq¶   sh   € Ý”	˜!‘”ˆAÝ”˜‘”ˆAÝ˜1�c !™fœfÑ%Ô%ð 1ð 1�Ø�S  1 q¡5¨¨Q© ;¤Ñ0Ô0Ñ0��!‘�ØˆHr   rª   c                 ó|   — t          j        | ¦  «        }d„ } t          j        || |ff¬¦  «        ||¦  «        }|S )Nc                 óh   — | |          }t          | dz   |dz   ¦  «        D ]}|| |         z  }Œd|z  S ©Nr   r&   r'   ©r   r:   r)   r*   s       r   r+   zDTestStencil.test_stencil2.<locals>.test_seq.<locals>.stencil2_kernelÅ   sI   € Ø˜˜”e�Ý ˜r A™v q¨1¡uÑ-Ô-ð  ð  �AØ˜1˜Qœ4‘K�C�CØ˜S‘yÐ r   r"   ©r~   r˜   rk   r   )rœ   r:   r�   r+   rž   s        r   r¯   z+TestStencil.test_stencil2.<locals>.test_seqÂ   sN   € Ý”	˜!‘”ˆAð!ð !ð !ð
 I•”˜o¸q¸bÀ!¸W¸KÐHÑHÔHÈÈAÑNÔNˆAØˆHr   c                 óè   — t          j        | ¦  «        }t          j        | ¦  «        }t          |t	          |¦  «        |z
  ¦  «        D ](}dt          |||z
  ||z   dz   …         ¦  «        z  ||<   Œ)|S )Nr&   r   r²   )rœ   r:   r�   rž   r*   s        r   r©   z0TestStencil.test_stencil2.<locals>.test_impl_seqÍ   sq   € Ý”	˜!‘”ˆAÝ”˜‘”ˆAÝ˜1�c !™fœf q™jÑ)Ô)ð 5ð 5�Ø�S  1 q¡5¨¨Q©°© ?Ô!3Ñ4Ô4Ñ4��!‘�ØˆHr   r±   ry   rz   r|   c                 ó‚   — t          j        | ¦  «        }d„ } t          j        || |ff| f¬¦  «        ||¦  «        }|S )Nc                 ót   — | | dz            }t          | dz   |dz   ¦  «        D ]}|| |dz            z  }Œd|z  S r¸   r'   r¹   s       r   r+   zDTestStencil.test_stencil2.<locals>.test_seq.<locals>.stencil2_kernelà   sQ   € Ø˜˜˜Q™”i�Ý ˜r A™v q¨1¡uÑ-Ô-ð $ð $�AØ˜1˜Q ™Uœ8‘O�C�CØ˜S‘yÐ r   ©r#   Úindex_offsetsrº   ©rœ   r:   Úoffsetr�   r+   rž   s         r   r¯   z+TestStencil.test_stencil2.<locals>.test_seqÝ   s_   € Ý”	˜!‘”ˆAð!ð !ð !ð
9•”˜o¸q¸bÀ!¸W¸KØ.4¨W¨Kð9ñ 9ô 9Ø9:¸Añ?ô ?ˆAàˆHr   r   c                 ó‚   — t          j        | ¦  «        }d„ } t          j        || |ff| f¬¦  «        ||¦  «        }|S )Nc                 óN   — dt          j        | | dz   |dz   …         ¦  «        z  S )Nr&   r   r2   )r~   r´   )r   r:   s     r   r+   zDTestStencil.test_stencil2.<locals>.test_seq.<locals>.stencil2_kernelô   s)   € Ø�RœV A q b¨1¡f¨Q°©U l¤OÑ4Ô4Ñ4Ð4r   r¾   rº   rÀ   s         r   r¯   z+TestStencil.test_stencil2.<locals>.test_seqñ   s_   € Ý”	˜!‘”ˆAð5ð 5ð 5ð9•”˜o¸q¸bÀ!¸W¸KØ.4¨W¨Kð9ñ 9ô 9Ø9:¸Añ?ô ?ˆAàˆHr   N)r‰   re   r   Úintpr}   r~   r   r€   r�   r‚   rƒ   )	rU   r¯   r©   rœ   r:   ru   r…   rˆ   rÁ   s	            r   Útest_stencil2zTestStencil.test_stencil2¬   s  € ð
	ð 	ð 	ð
	ð 	ð 	ð ˆØ�
Š
�= (¨AÑ.Ô.Ð.ð		ð 		ð 		ð	ð 	ð 	ð ˆØˆØ×&Ò& xµ%´*½e¼jÐ1IÑJÔJˆØ �=  AÑ&Ô&ˆà×*Ò*¨1¨aÑ0Ô0ˆÝ
Œ
×&Ò& }°hÈÐ&ÑJÔJÐJØ�ŠÐ&¨¬×(CÒ(CÑ(EÔ(EÑFÔFÐFð
	ð 
	ð 
	ð ˆØ×&Ò& xµ%´*½e¼jÝ27´*ð2>ñ ?ô ?ˆà×*Ò*¨1¨a°Ñ8Ô8ˆÝ
Œ
×&Ò& }°hÈÐ&ÑJÔJÐJØ�ŠÐ&¨¬×(CÒ(CÑ(EÔ(EÑFÔFÐFð	ð 	ð 	ð ˆØ×&Ò& xµ%´*½e¼jÝ27´*ð2>ñ ?ô ?ˆà×*Ò*¨1¨a°Ñ8Ô8ˆÝ
Œ
×&Ò& }°hÈÐ&ÑJÔJÐJØ�ŠÐ&¨¬×(CÒ(CÑ(EÔ(EÑFÔFÐFÐFÐFr   c                 ó”  — d„ }t          |¦  «        }t          |d¬¦  «        }d} ||¦  «        } ||¦  «        } ||¦  «        }|                      |d         dk    o|d         dk    ¦  «         |                      |d         dk    o|d         dk    ¦  «         |                      |d         dk    o|d         dk    ¦  «         dS )	z�Tests whether a non-zero optional cval argument to the stencil
        decorator works.  Also tests integer result type.
        c                 ó|   — t          j        | dz  ¦  «                             | | f¦  «        }t          |¦  «        }|S r¡   )r~   r˜   r™   r3   r›   s      r   r¯   z+TestStencil.test_stencil3.<locals>.test_seq  r£   r   TrI   r±   r>   r,   )é   rÈ   N)r   Ú
assertTrue)rU   r¯   Ú	test_njitÚtest_parrœ   Úseq_resÚnjit_resÚpar_ress           r   Útest_stencil3zTestStencil.test_stencil3  sÝ   € ð
	ð 	ð 	õ
 ˜‘N”Nˆ	Ý˜¨4Ð0Ñ0Ô0ˆàˆØ�(˜1‘+”+ˆØ�9˜Q‘<”<ˆØ�(˜1‘+”+ˆà�Š˜ œ¨Ò,ÐE°¸´À#Ò1EÑFÔFÐFØ�Š˜ œ¨#Ò-ÐG°(¸4´.ÀCÒ2GÑHÔHÐHØ�Š˜ œ¨Ò,ÐE°¸´À#Ò1EÑFÔFÐFÐFÐFr   c                 óD   — d„ }d„ }d}|                       |||¦  «         dS )z1Tests standard indexing with a 1d array.
        c                 óV   — t          j        | ¦  «        }ddg}t          ||¦  «        }|S )Nç      @ç      @)r~   r˜   rC   ©rœ   r�   rž   ÚCs       r   r¯   z?TestStencil.test_stencil_standard_indexing_1d.<locals>.test_seq  s,   € Ý”	˜!‘”ˆAØ�c�
ˆAÝ1°!°QÑ7Ô7ˆAØˆHr   c                 óÖ   — t          j        | ¦  «        }ddg}t          j        | ¦  «        }t          d| ¦  «        D ]+}||dz
           |d         z  ||         |d         z  z   ||<   Œ,|S )NrÒ   rÓ   r   r   ©r~   r˜   rš   r(   )rœ   r�   rž   rÕ   r*   s        r   r©   zDTestStencil.test_stencil_standard_indexing_1d.<locals>.test_impl_seq!  sm   € Ý”	˜!‘”ˆAØ�c�
ˆAÝ”˜‘”ˆAå˜1˜a‘[”[ð 5ð 5�Ø˜˜Q™”x ! A¤$‘¨¨1¬°°!´©Ñ4��!‘�ØˆHr   rª   Nr«   ©rU   r¯   r©   rœ   s       r   Ú!test_stencil_standard_indexing_1dz-TestStencil.test_stencil_standard_indexing_1d  sC   € ð	ð 	ð 	ð	ð 	ð 	ð ˆØ�
Š
�= (¨AÑ.Ô.Ð.Ð.Ð.r   c                 óD   — d„ }d„ }d}|                       |||¦  «         dS )zLTests standard indexing with a 2d array and multiple stencil calls.
        c                 óÆ   — t          j        | dz  ¦  «                             | | f¦  «        }t          j        d¦  «        }t	          ||¦  «        }t	          ||¦  «        }|S )Nr2   ©ry   ry   )r~   r˜   r™   ÚonesrE   )rœ   r�   rž   rÕ   ÚDs        r   r¯   z?TestStencil.test_stencil_standard_indexing_2d.<locals>.test_seq1  sU   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”˜‘”ˆAÝ1°!°QÑ7Ô7ˆAÝ1°!°QÑ7Ô7ˆAØˆHr   c                 óf  — t          j        | dz  ¦  «                             | | f¦  «        }t          j        d¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }t          d| dz
  ¦  «        D ]x}t          d| dz
  ¦  «        D ]b}|||dz   f         |d         z  ||dz   |f         |d         z  z   |||dz
  f         |d         z  z   ||dz
  |f         |d         z  z   |||f<   ŒcŒyt          d| dz
  ¦  «        D ]x}t          d| dz
  ¦  «        D ]b}|||dz   f         |d         z  ||dz   |f         |d         z  z   |||dz
  f         |d         z  z   ||dz
  |f         |d         z  z   |||f<   ŒcŒy|S )Nr2   rÜ   r   r   r   r   r   )r~   r˜   r™   rÝ   rš   r(   )rœ   r�   rž   rÕ   rÞ   r*   r¨   s          r   r©   zDTestStencil.test_stencil_standard_indexing_2d.<locals>.test_impl_seq8  só  € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”˜‘”ˆAÝ”˜˜A™‘”×&Ò&¨¨1 vÑ.Ô.ˆAÝ”˜˜A™‘”×&Ò&¨¨1 vÑ.Ô.ˆAå˜1˜a !™e‘_”_ð Pð P�Ý˜q ! a¡%™œð Pð P�AØ   A¨¡E œ{¨Q¨t¬WÑ4°q¸¸Q¹À¸´{ÀQÀtÄWÑ7LÑLØ   A¨¡E œ{¨Q¨u¬XÑ5ñ 6Ø89¸!¸a¹%À¸(¼ÀaÈÄhÑ8Nñ O�A�a˜�d‘G�GðPõ ˜1˜a !™e‘_”_ð Pð P�Ý˜q ! a¡%™œð Pð P�AØ   A¨¡E œ{¨Q¨t¬WÑ4°q¸¸Q¹À¸´{ÀQÀtÄWÑ7LÑLØ   A¨¡E œ{¨Q¨u¬XÑ5ñ 6Ø89¸!¸a¹%À¸(¼ÀaÈÄhÑ8Nñ O�A�a˜�d‘G�GðPð ˆHr   r±   Nr«   rØ   s       r   Ú!test_stencil_standard_indexing_2dz-TestStencil.test_stencil_standard_indexing_2d-  sC   € ð	ð 	ð 	ð	ð 	ð 	ð  ˆØ�
Š
�= (¨AÑ.Ô.Ð.Ð.Ð.r   c                 óx   — d„ }d„ }d}|                       |||¦  «         d„ }|                       |||¦  «         dS )z=Tests whether multiple inputs of the same size work.
        c                 óÖ   — t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }t          ||¦  «        }|S r¡   )r~   r˜   r™   r7   rÔ   s       r   r¯   z:TestStencil.test_stencil_multiple_inputs.<locals>.test_seqO  s\   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ-¨a°Ñ3Ô3ˆAØˆHr   c                 óT  — t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }t	          d| dz
  ¦  «        D ]�}t	          d| dz
  ¦  «        D ]y}d|||dz   f         ||dz   |f         z   |||dz
  f         z   ||dz
  |f         z   |||dz   f         z   ||dz   |f         z   |||dz
  f         z   ||dz
  |f         z   z  |||f<   ŒzŒ�|S r¥   r¦   )rœ   r�   rž   rÕ   r*   r¨   s         r   r©   z?TestStencil.test_stencil_multiple_inputs.<locals>.test_impl_seqU  s]  € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”˜˜A™‘”×&Ò&¨¨1 vÑ.Ô.ˆAÝ˜1˜a !™e‘_”_ð 6ð 6�Ý˜q ! a¡%™œð 6ð 6�AØ"Ø˜1˜a !™e˜8œ q¨¨Q©°¨¤{Ñ2Ø˜Q  A¡˜Xœ;ñ'Ø)*¨1¨q©5°!¨8¬ñ5à˜Q  A¡˜Xœ;ñ'à)*¨1¨q©5°!¨8¬ñ5ð ˜Q  A¡˜Xœ;ñ'ð *+¨1¨q©5°!¨8¬ñ5ñ6�A�a˜�d‘G�Gð6ð ˆHr   ry   c                 óÜ   — t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }d}t          |||¦  «        }|S )Nr2   r   )r~   r˜   r™   r;   )rœ   r�   rž   r:   rÕ   s        r   r¯   z:TestStencil.test_stencil_multiple_inputs.<locals>.test_seqf  sc   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAØˆAÝ1°!°Q¸Ñ:Ô:ˆAØˆHr   Nr«   rØ   s       r   Útest_stencil_multiple_inputsz(TestStencil.test_stencil_multiple_inputsK  sj   € ð	ð 	ð 	ð	ð 	ð 	ð ˆØ�
Š
�= (¨AÑ.Ô.Ð.ð	ð 	ð 	ð 	�
Š
�= (¨AÑ.Ô.Ð.Ð.Ð.r   c                 óD   — d„ }d„ }d}|                       |||¦  «         d S )Nc                 óÎ  — t          j        | dz  ¦  «                             | | f¦  «        }| dz  t          j        | dz  ¦  «                             | | f¦  «        z
  }t          j        | t           j        ¬¦  «        }t          j        | | f|j        ¬¦  «        }t          d| ¦  «        D ]8}t          d| ¦  «        D ]%}|||f         r
|||f         n	|||f         |||f<   Œ&Œ9|S )Nr2   ©Údtyper   )r~   r˜   r™   ÚeyeÚbool_rš   ré   r(   )rœ   r�   rž   ÚSÚOr*   r¨   s          r   r©   z;TestStencil.test_stencil_mixed_types.<locals>.test_impl_seqp  sí   € Ý”	˜!˜q™&Ñ!Ô!×)Ò)¨1¨a¨&Ñ1Ô1ˆAØ�Q‘�œ 1¨¡6Ñ*Ô*×2Ò2°A°q°6Ñ:Ô:Ñ:ˆAÝ”�q¥¤Ð)Ñ)Ô)ˆAÝ”˜!˜Q˜ q¤wÐ/Ñ/Ô/ˆAÝ˜1˜a‘[”[ð >ð >�Ý˜q !™œð >ð >�AØ)*¨1¨a¨4¬Ð=˜a  1 œg˜g°a¸¸1¸´g�A�a˜�d‘G�Gð>àˆHr   c                 ó$  — t          j        | dz  ¦  «                             | | f¦  «        }| dz  t          j        | dz  ¦  «                             | | f¦  «        z
  }t          j        | t           j        ¬¦  «        }t          |||¦  «        }|S )Nr2   rè   )r~   r˜   r™   rê   rë   r@   )rœ   r�   rž   rì   rí   s        r   r¯   z6TestStencil.test_stencil_mixed_types.<locals>.test_seqz  s�   € Ý”	˜!˜q™&Ñ!Ô!×)Ò)¨1¨a¨&Ñ1Ô1ˆAØ�Q‘�œ 1¨¡6Ñ*Ô*×2Ò2°A°q°6Ñ:Ô:Ñ:ˆAÝ”�q¥¤Ð)Ñ)Ô)ˆAÝ5°a¸¸AÑ>Ô>ˆAØˆHr   ry   r«   )rU   r©   r¯   rœ   s       r   Útest_stencil_mixed_typesz$TestStencil.test_stencil_mixed_typesn  sC   € ð	ð 	ð 	ð	ð 	ð 	ð ˆØ�
Š
�= (¨AÑ.Ô.Ð.Ð.Ð.r   c                 óx   — d„ }d„ }d„ }d}|                       |||¦  «         |                       |||¦  «         dS )z&Tests 2D numba.stencil calls.
        c                 óö   — t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        } t	          j        d„ ¦  «        ||¬¦  «         |S )Nr2   c                 óN   — d| d         | d         z   | d         z   | d         z   z  S r   r   r   s    r   ú<lambda>zCTestStencil.test_stencil_call.<locals>.test_impl1.<locals>.<lambda>‹  s/   €  D¨A¨d¬G°a¸´gÑ,=ÀÀ%ÄÑ,HØ./°¬hñ-7ñ %8€ r   r–   ©r~   r˜   r™   rš   rk   r   r›   s      r   Ú
test_impl1z1TestStencil.test_stencil_call.<locals>.test_impl1ˆ  s‡   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”˜˜A™‘”×&Ò&¨¨1 vÑ.Ô.ˆAð9�EŒMð 8ð 8ñ 9ô 9Ø9:ÀðCñ Cô Cð CàˆHr   c                 óö   — t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }d„ } t	          j        |¦  «        |¦  «        }|S )Nr2   c                 óN   — d| d         | d         z   | d         z   | d         z   z  S r   r   r   s    r   Úsfz=TestStencil.test_stencil_call.<locals>.test_impl2.<locals>.sf“  s,   € Ø˜q œw¨¨4¬Ñ0°1°U´8Ñ;¸aÀ¼hÑFÑGÐGr   rô   )rœ   r�   rž   rø   s       r   Ú
test_impl2z1TestStencil.test_stencil_call.<locals>.test_impl2�  sx   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”˜˜A™‘”×&Ò&¨¨1 vÑ.Ô.ˆAðHð Hð Hà!•”˜bÑ!Ô! !Ñ$Ô$ˆAØˆHr   c                 óŒ  — t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }t	          d| dz
  ¦  «        D ]W}t	          d| dz
  ¦  «        D ]A}d|||dz   f         ||dz   |f         z   |||dz
  f         z   ||dz
  |f         z   z  |||f<   ŒBŒX|S r¥   r¦   r§   s        r   r©   z4TestStencil.test_stencil_call.<locals>.test_impl_seq˜  sì   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”˜˜A™‘”×&Ò&¨¨1 vÑ.Ô.ˆAÝ˜1˜a !™e‘_”_ð Cð C�Ý˜q ! a¡%™œð Cð C�AØ" a¨¨1¨q©5¨¤k°A°a¸!±e¸Q°h´KÑ&?Ø()¨!¨Q°©U¨(¬ñ'4Ø67¸¸A¹¸q¸´kñ'Bñ C�A�a˜�d‘G�GðCð ˆHr   rª   Nr«   )rU   rõ   rù   r©   rœ   s        r   Útest_stencil_callzTestStencil.test_stencil_call„  sh   € ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð ˆØ�
Š
�= *¨aÑ0Ô0Ð0Ø�
Š
�= *¨aÑ0Ô0Ð0Ð0Ð0r   c                 óD   — d„ }d„ }d}|                       |||¦  «         dS )z&Tests 1D numba.stencil calls.
        c                 ó–   — t          j        | ¦  «        }t          j        | ¦  «        } t          j        d„ ¦  «        ||¬¦  «         |S )Nc                 ó<   — d| d         | d         z   | d         z   z  S ©Nr&   r   r   r   r   r   s    r   ró   zETestStencil.test_stencil_call_1D.<locals>.test_impl.<locals>.<lambda>¬  s    €  C¨1¨R¬5°1°Q´4©<¸!¸A¼$Ñ+>Ñ$?€ r   r–   ©r~   r˜   rš   rk   r   r›   s      r   Ú	test_implz3TestStencil.test_stencil_call_1D.<locals>.test_impl©  sD   € Ý”	˜!‘”ˆAÝ”˜‘”ˆAØ@�EŒMÐ?Ð?Ñ@Ô@ÀÈÐJÑJÔJÐJØˆHr   c                 óÎ   — t          j        | ¦  «        }t          j        | ¦  «        }t          d| dz
  ¦  «        D ](}d||dz
           ||         z   ||dz            z   z  ||<   Œ)|S r¸   r×   rµ   s       r   r©   z7TestStencil.test_stencil_call_1D.<locals>.test_impl_seq¯  si   € Ý”	˜!‘”ˆAÝ”˜‘”ˆAÝ˜1˜a !™e‘_”_ð :ð :�Ø˜a  A¡œh¨¨1¬™o°°!°a±%´Ñ8Ñ9��!‘�ØˆHr   rª   Nr«   ©rU   r  r©   rœ   s       r   Útest_stencil_call_1Dz TestStencil.test_stencil_call_1D¥  sC   € ð	ð 	ð 	ð	ð 	ð 	ð ˆØ�
Š
�= )¨QÑ/Ô/Ð/Ð/Ð/r   c                 óº  — d„ }d„ }d„ }d„ }d„ }d}|                       |t          j        f¦  «        }|                       |t          j        f¦  «        }|                       |t          j        f¦  «        }	|                       |t          j        f¦  «        }
 ||¦  «        }|                     |¦  «        }|                     |¦  «        }|	                     |¦  «        }|
                     |¦  «        }t          j                             ||d¬¦  «         t          j                             ||d¬¦  «         t          j                             ||d¬¦  «         t          j                             ||d¬¦  «         |                      t          ¦  «        5 } |d	¦  «         d
d
d
¦  «         n# 1 swxY w Y   |  	                    dt          |j        ¦  «        ¦  «         |                      t          t          f¦  «        5 } t          |¦  «        d	¦  «         d
d
d
¦  «         n# 1 swxY w Y   |  	                    dt          |j        ¦  «        ¦  «         d
S )zÈTests numba.stencil call that has an index that can be inferred as
        constant from a unary expr. Otherwise, this would raise an error since
        neighborhood length is not specified.
        c                 óœ   — t          j        | ¦  «        }t          j        | ¦  «        }d} t          j        d„ ¦  «        |||¬¦  «         |S )Nr   c                 ó>   — d| |          | d         z   | |         z   z  S ©Nr&   r   r   ©r   Úcs     r   ró   zITestStencil.test_stencil_call_const.<locals>.test_impl1.<locals>.<lambda>Ã  s"   €  s¨a°°¬e°a¸´d©l¸Q¸q¼TÑ.AÑ'B€ r   r–   r   ©rœ   r�   rž   r
  s       r   rõ   z7TestStencil.test_stencil_call_const.<locals>.test_impl1¿  sK   € Ý”	˜!‘”ˆAÝ”˜‘”ˆAØˆAØC�EŒMÐBÐBÑCÔCÀAÀqÈaÐPÑPÔPÐPØˆHr   c                 óœ   — t          j        | ¦  «        }t          j        | ¦  «        }d} t          j        d„ ¦  «        |||¬¦  «         |S )Nr2   c                 óH   — d| d|z
           | d         z   | |dz
           z   z  S ©Nr&   r   r   r   r	  s     r   ró   zITestStencil.test_stencil_call_const.<locals>.test_impl2.<locals>.<lambda>Ë  s(   € ˜S A a¨!¡e¤H¨q°¬t¡O°a¸¸A¹´hÑ$>Ñ?€ r   r–   r   r  s       r   rù   z7TestStencil.test_stencil_call_const.<locals>.test_impl2Æ  sa   € Ý”	˜!‘”ˆAÝ”˜‘”ˆAØˆAðA�EŒMØ?Ð?ñAô AØABÀAÈ1ðNñ Nô Nð NàˆHr   c                 óœ   — t          j        | ¦  «        }t          j        | ¦  «        }d} t          j        d„ ¦  «        |||¬¦  «         |S )Nr2   c                 óJ   — d| | dz            | d         z   | |dz
           z   z  S r  r   r	  s     r   ró   zITestStencil.test_stencil_call_const.<locals>.test_impl3.<locals>.<lambda>Ô  s+   € ˜S A q b¨1¡f¤I°°!´Ñ$4°q¸¸Q¹´xÑ$?Ñ@€ r   r–   r   r  s       r   Ú
test_impl3z7TestStencil.test_stencil_call_const.<locals>.test_impl3Ï  sa   € Ý”	˜!‘”ˆAÝ”˜‘”ˆAØˆAðB�EŒMØ@Ð@ñBô BØBCÀQÈAðOñ Oô Oð OàˆHr   c                 ó¢   — t          j        | ¦  «        }t          j        | ¦  «        }d}d} t          j        d„ ¦  «        ||||¬¦  «         |S )Nr   r2   c                 óJ   — d| | |z            | d         z   | ||z
           z   z  S r  r   )r   r
  Úds      r   ró   zITestStencil.test_stencil_call_const.<locals>.test_impl4.<locals>.<lambda>Þ  s+   € ˜s a¨¨¨Q©¤i°!°A´$Ñ&6¸¸1¸q¹5¼Ñ&AÑB€ r   r–   r   )rœ   r�   rž   r  r
  s        r   Ú
test_impl4z7TestStencil.test_stencil_call_const.<locals>.test_impl4Ø  sk   € Ý”	˜!‘”ˆAÝ”˜‘”ˆAØˆAØˆAðD�EŒMØBÐBñDô DØDEÀqÈ!ØHIðKñ Kô Kð Kð ˆHr   c                 óÒ   — t          j        | ¦  «        }t          j        | ¦  «        }d}t          d| dz
  ¦  «        D ](}d|||z
           ||         z   |||z            z   z  ||<   Œ)|S r¸   r×   )rœ   r�   rž   r
  r*   s        r   r©   z:TestStencil.test_stencil_call_const.<locals>.test_impl_seqâ  sn   € Ý”	˜!‘”ˆAÝ”˜‘”ˆAØˆAÝ˜1˜a !™e‘_”_ð :ð :�Ø˜a  A¡œh¨¨1¬™o°°!°a±%´Ñ8Ñ9��!‘�ØˆHr   rª   ry   rz   rÈ   NzDstencil kernel index is not constant, 'neighborhood' option required)re   r   rÄ   r}   r~   r   r€   ÚassertRaisesr   r�   ÚstrÚ	exceptionr   r   )rU   rõ   rù   r  r  r©   rœ   Úcpfunc1Úcpfunc2Úcpfunc3Úcpfunc4r…   Úparfor_output1Úparfor_output2Úparfor_output3Úparfor_output4Úes                    r   Útest_stencil_call_constz#TestStencil.test_stencil_call_const¹  sç  € ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð ˆà×'Ò'¨
µU´Z°MÑBÔBˆØ×'Ò'¨
µU´Z°MÑBÔBˆØ×'Ò'¨
µU´Z°MÑBÔBˆØ×'Ò'¨
µU´Z°MÑBÔBˆØ �= Ñ#Ô#ˆà ×,Ò,¨QÑ/Ô/ˆØ ×,Ò,¨QÑ/Ô/ˆØ ×,Ò,¨QÑ/Ô/ˆØ ×,Ò,¨QÑ/Ô/ˆÝ
Œ
×&Ò& ~°xÈÐ&ÑKÔKÐKÝ
Œ
×&Ò& ~°xÈÐ&ÑKÔKÐKÝ
Œ
×&Ò& ~°xÈÐ&ÑKÔKÐKÝ
Œ
×&Ò& ~°xÈÐ&ÑKÔKÐKð ×Ò�Ñ/Ô/ð 	°1ØˆJ�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Šð 7Ý8;¸A¼KÑ8HÔ8Hñ	Jô 	Jð 	Jð ×Ò¥­Ð?Ñ@Ô@ð 	 ÀAØ�D�ÑÔ˜QÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	�Šð 7Ý8;¸A¼KÑ8HÔ8Hñ	Jô 	Jð 	Jð 	Jð 	Js$   ÆF/Æ/F3Æ6F3ÈH(È(H,È/H,c                 ó¼   — d„ }|                       |t          j        dd…         fd¬¦  «        }|                      d|j                             ¦   «         ¦  «         dS )zYTests 1D numba.stencil calls without parallel translation
           turned off.
        c                 ó>   —  t          j        d„ ¦  «        | ¦  «        S )Nc                 ó<   — d| d         | d         z   | d         z   z  S rÿ   r   r   s    r   ró   zJTestStencil.test_stencil_parallel_off.<locals>.test_impl.<locals>.<lambda>  s    € ¨3°!°B´%¸!¸A¼$±,ÀÀ1ÄÑ2EÑ+F€ r   )rk   r   )r�   s    r   r  z8TestStencil.test_stencil_parallel_off.<locals>.test_impl  s    € ØG•5”=Ð!FÐ!FÑGÔGÈÑJÔJÐJr   NF©r   r|   )re   rk   Úfloat64ÚassertNotInr‚   rƒ   )rU   r  ru   s      r   Útest_stencil_parallel_offz%TestStencil.test_stencil_parallel_off	  sp   € ð
	Kð 	Kð 	Kð ×&Ò& yµ5´=ÀÀÀÔ3CÐ2EØ/4ð 'ñ 6ô 6ˆà×ÒÐ)¨6¬>×+FÒ+FÑ+HÔ+HÑIÔIÐIÐIÐIr   c                 óÊ   — t          d¬¦  «        d„ ¦   «         }d„ }t          j        d¦  «        }t          j                              ||¦  «         ||¦  «        ¦  «         dS )z6Tests whether nested stencil decorator works.
        TrI   c                 ó<   — t           d„ ¦   «         } || ¦  «        }|S )Nc                 ó   — d}| | dz            S )Nr2   r   r   r	  s     r   Úfunz@TestStencil.test_stencil_nested1.<locals>.test_impl.<locals>.fun  s   € à�Ø˜!˜˜a™”yÐ r   r'  )rœ   r.  rž   s      r   r  z3TestStencil.test_stencil_nested1.<locals>.test_impl  s/   € åð!ð !ñ ŒWð!ð ��A‘”ˆAØˆHr   c                 ó²   — t          j        t          | ¦  «        t          ¬¦  «        }t	          dt          | ¦  «        ¦  «        D ]}| |dz
           ||<   Œ|S )Nrè   r   )r~   rš   r³   Úintr(   )rœ   rž   r*   s      r   r©   z7TestStencil.test_stencil_nested1.<locals>.test_impl_seq"  sS   € Ý”�˜Q™œ¥sÐ+Ñ+Ô+ˆAÝ˜1�c !™fœfÑ%Ô%ð  ð  �Ø˜˜Q™”x��!‘�ØˆHr   é
   N)r   r~   r˜   r   Úassert_equalr  s       r   Útest_stencil_nested1z TestStencil.test_stencil_nested1  sw   € õ 
�tÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	ð	ð 	ð 	õ ŒI�b‰MŒMˆÝ
Œ
×Ò 	 	¨!¡¤¨m¨m¸AÑ.>Ô.>Ñ?Ô?Ð?Ð?Ð?r   c                 óV  ‡— ddg}d„ }|D ]ñ}t          j        ||¬¦  «        Šˆfd„}t          j        d¦  «                             d¦  «        }t          j        |d¦  «        }||d	d
d
…f<   t          j        |¦  «        } ‰||¬¦  «         t          j                             ||¦  «         |  	                    |¦  «        }|D ]6}	|	 
                    ¦   «         }
t          j                             |
|¦  «         Œ7Œòt          j        |d¬¦  «        Šˆfd„}t          j        d¦  «                             d¦  «        }t          j        |¦  «        }|                      t          ¦  «        5 } ‰||¬¦  «         d
d
d
¦  «         n# 1 swxY w Y   d}|                      |t          |j        ¦  «        ¦  «         | j        | j        fD ]^}	  ||d¦  «         t%          d¦  «        ‚# t          t&          f$ r-}|                      |t          |¦  «        ¦  «         Y d
}~ŒWd
}~ww xY wd
S )z/ Issue #3518, out kwarg did not work with cval.é   rÓ   c                 ó$   — | d         | d         z
  S ©Nr>   r   r   r   s    r   Úkernelz1TestStencil.test_out_kwarg_w_cval.<locals>.kernel1  s   € Ø�d”G˜a œgÑ%Ð&r   r-   c                  ó˜   •— t          j        d¦  «                             d¦  «        } t          j        | ¦  «        } ‰| |¬¦  «         |S ©Né   ©ry   rÈ   r–   ©r~   r˜   r™   Ú	ones_like©r�   ÚretÚ
stencil_fns     €r   Úwrappedz2TestStencil.test_out_kwarg_w_cval.<locals>.wrapped7  sE   ø€ Ý”I˜b‘M”M×)Ò)¨&Ñ1Ô1�Ý”l 1‘o”o�Ø�
˜1 #Ð&Ñ&Ô&Ð&Ø�
r   r;  r<  r%   r   Nr–   ù              ð?c                  ó˜   •— t          j        d¦  «                             d¦  «        } t          j        | ¦  «        } ‰| |¬¦  «         |S r:  r=  r?  s     €r   rB  z2TestStencil.test_out_kwarg_w_cval.<locals>.wrappedN  sE   ø€ Ý”	˜"‘”×%Ò% fÑ-Ô-ˆAÝ”,˜q‘/”/ˆCØˆJ�q˜cÐ"Ñ"Ô"Ð"ØˆJr   z-cval type does not match stencil return type.r   zExpected error was not raised)rk   r   r~   r˜   r™   Ú	full_liker>  r   r€   rw   r}   r  r   r�   r  r  rg   re   ÚAssertionErrorr   )rU   Ú
const_valsr8  Ú	const_valrB  r�   r…   r@  ÚimplsÚimplÚgotr"  ÚmsgÚcompilerrA  s                 @r   Útest_out_kwarg_w_cvalz!TestStencil.test_out_kwarg_w_cval+  sÀ  ø€ ð ˜�Xˆ
ð	'ð 	'ð 	'ð $ð 	>ð 	>ˆIÝœ v°IÐ>Ñ>Ô>ˆJðð ð ð ð õ ”	˜"‘”×%Ò% fÑ-Ô-ˆAÝ”| A rÑ*Ô*ˆHØ'ˆH�R˜˜˜�U‰OÝ”,˜q‘/”/ˆCØˆJ�q˜cÐ"Ñ"Ô"Ð"ÝŒJ×*Ò*¨3°Ñ9Ô9Ð9ð ×$Ò$ WÑ.Ô.ˆEØð >ð >�Ø×&Ò&Ñ(Ô(�Ý”
×.Ò.¨s°HÑ=Ô=Ð=Ð=ð>õ
 ”] 6°Ð3Ñ3Ô3ˆ
ð	ð 	ð 	ð 	ð 	õ ŒI�b‰MŒM×!Ò! &Ñ)Ô)ˆÝŒl˜1‰oŒoˆØ×Ò�Ñ/Ô/ð 	#°1ØˆJ�q˜cÐ"Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#à=ˆØ�Š�c�3˜qœ{Ñ+Ô+Ñ,Ô,Ð,àÔ*¨DÔ,AÐBð 	Fð 	FˆHðFØ�˜ Ñ$Ô$Ð$õ %Ð%DÑEÔEÐEøõ $¥]Ð3ð +ð +ð +Ø—’˜c¥3 q¡6¤6Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*øøøøð+øøøð	Fð 	Fs*   Å-FÆFÆFÇG(Ç(H&Ç9#H!È!H&c                 ót  ‡
— t           j        t           j        t           j         t          d¦  «        t          d¦  «         fD ]ô}d„ }t	          j        ||¬¦  «        Š
ˆ
fd„}t          j        d¦  «                             d¦  «        }t          j        |d¦  «        }||dd	d	…f<   t          j	        |¦  «        } ‰
||¬
¦  «         t           j
                             ||¦  «         |                      |¦  «        }|D ]6}|                     ¦   «         }	t           j
                             |	|¦  «         Œ7Œõd	S )úU Test issue #7286 where the cval is a np attr/string-based numerical
        constantÚinfc                 ó$   — | d         | d         z
  S r7  r   r   s    r   r8  z9TestStencil.test_out_kwarg_w_cval_np_attr.<locals>.kernelh  s   € Ø˜$œ ! D¤'Ñ)Ð*r   r-   c                  ó˜   •— t          j        d¦  «                             d¦  «        } t          j        | ¦  «        } ‰| |¬¦  «         |S )Nç      (@r<  r–   r=  r?  s     €r   rB  z:TestStencil.test_out_kwarg_w_cval_np_attr.<locals>.wrappedm  sE   ø€ Ý”I˜c‘N”N×*Ò*¨6Ñ2Ô2�Ý”l 1‘o”o�Ø�
˜1 #Ð&Ñ&Ô&Ð&Ø�
r   rT  r<  r%   r   Nr–   )r~   ÚnanrQ  Úfloatrk   r   r˜   r™   rE  r>  r   r€   rw   r}   )rU   r.   r8  rB  r�   r…   r@  rI  rJ  rK  rA  s             @r   Útest_out_kwarg_w_cval_np_attrz)TestStencil.test_out_kwarg_w_cval_np_attrc  sK  ø€ õ ”V�RœV¥b¤f W­e°E©l¬l½UÀ5¹\¼\¸MÐJð 	>ð 	>ˆDð+ð +ð +õ œ v°DÐ9Ñ9Ô9ˆJðð ð ð ð õ ”	˜#‘”×&Ò& vÑ.Ô.ˆAÝ”| A rÑ*Ô*ˆHØ"ˆH�R˜˜˜�U‰OÝ”,˜q‘/”/ˆCØˆJ�q˜cÐ"Ñ"Ô"Ð"ÝŒJ×*Ò*¨3°Ñ9Ô9Ð9ð ×$Ò$ WÑ.Ô.ˆEØð >ð >�Ø×&Ò&Ñ(Ô(�Ý”
×.Ò.¨s°HÑ=Ô=Ð=Ð=ð>ð-	>ð 	>r   )rŠ   r‹   rŒ   rT   Úskip_unsupportedr¬   rÅ   rÏ   rÙ   rà   rå   rï   rû   r  r#  r*  r3  rN  rW  rŽ   r�   s   @r   r‘   r‘   ‹   sÝ  ø€ € € € € ð;ð ;ð ;ð ;ð ;ð ð7ð 7ñ Ôð7ð6 ðRGð RGñ ÔðRGðh ðGð Gñ ÔðGð* ð/ð /ñ Ôð/ð* ð/ð /ñ Ôð/ð: ð /ð  /ñ Ôð /ðD ð/ð /ñ Ôð/ð* ð1ð 1ñ Ôð1ð@ ð0ð 0ñ Ôð0ð& ðMJð MJñ ÔðMJð^ ð	Jð 	Jñ Ôð	Jð ð@ð @ñ Ôð@ð* ð5Fð 5Fñ Ôð5Fðn ð>ð >ñ Ôð>ð >ð >ð >ð >r   r‘   c                   ó\  ‡ — e Zd Zˆ f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„ 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-„ Z0d.„ Z1d/„ Z2d0„ Z3d1„ Z4d2„ Z5d3„ Z6d4„ Z7d5„ Z8d6„ Z9d7„ Z:d8„ Z;d9„ Z<d:„ Z=d;„ Z> e)j*        d<¦  «        d=„ ¦   «         Z?d>„ Z@d?„ ZAd@„ ZBdA„ ZCdB„ ZDdC„ ZEdD„ ZFdE„ ZGdF„ ZHdG„ ZIdH„ ZJdI„ ZKdJ„ ZLdK„ ZMdL„ ZNdM„ ZOdN„ ZPdO„ ZQdP„ ZRdQ„ ZSdR„ ZTdS„ ZUdT„ ZVdU„ ZWdV„ ZXdW„ ZYdX„ ZZdY„ Z[dZ„ Z\d[„ Z]d\„ Z^d]„ Z_d^„ Z`d_„ Zad`„ Zbda„ Zcdb„ Zddc„ Zedd„ Zfde„ Zgdf„ Zhdg„ Zidh„ Zjdi„ Zkdj„ Zldk„ Zmdl„ Zn e)j*        dm¦  «        dn„ ¦   «         Zodo„ Zp e)j*        dm¦  «        dp„ ¦   «         Zqdq„ Zrˆ xZsS )rÚTestManyStencilsc                 óH   •—  t          t          | ¦  «        j        |i |¤Ž d S rY   )rS   rZ  rT   r“   s      €r   rT   zTestManyStencils.__init__�  s,   ø€ Ø.�Õ Ñ%Ô%Ô.°Ð?¸Ð?Ð?Ð?Ð?Ð?r   c           	      óô	  ‡‡‡— |                      dt          ¦   «         ¦  «        }|                      d¦  «        }d}g Šg Št          d&ˆˆfd„	¦   «         }t          |t          ¦  «        r|d         }	|d         }
|d         }n|}	|}
|}d	|i}|                     |¦  «         d} ||	d
¦  «        5  t          d'i |¤ŽŠ ‰|Ž }ddd¦  «         n# 1 swxY w Y   t          |¦  «        dk    rˆfd„}nQt          |¦  «        dk    rˆfd„}n8t          |¦  «        dk    rˆfd„}nt          dt          |¦  «        z  ¦  «        ‚t          d„ |D ¦   «         ¦  «        }d} ||
d¦  «        5  |  	                    ||¦  «        } |j
        |Ž }ddd¦  «         n# 1 swxY w Y   d} ||d¦  «        5  |                      ||¦  «        } |j
        |Ž }ddd¦  «         n# 1 swxY w Y   |r0t          d|¦  «         t          d|¦  «         t          d|¦  «         	 |	sBt          j                             ||d¬¦  «         |                      |j        |j        ¦  «         nl# t$          $ r_}‰                     d
t)          |¦  «        ›dt+          |¦  «        ›�f¦  «         t          dt+          |¦  «        z  ¦  «         Y d}~nd}~ww xY w	 |
sBt          j                             ||d¬¦  «         |                      |j        |j        ¦  «         nl# t$          $ r_}‰                     dt)          |¦  «        ›dt+          |¦  «        ›�f¦  «         t          dt+          |¦  «        z  ¦  «         Y d}~nd}~ww xY w	 |s�t          j                             ||d¬¦  «         |                      |j        |j        ¦  «         	 |                      d|j                             ¦   «         ¦  «         n# t2          $ r d}t3          |¦  «        ‚w xY wnl# t$          $ r_}‰                     dt)          |¦  «        ›dt+          |¦  «        ›�f¦  «         t          dt+          |¦  «        z  ¦  «         Y d}~nd}~ww xY w|rt          d¦  «         ‰rd„ ‰D ¦   «         }t5          d |z  ¦  «        ‚‰rGd!„ ‰D ¦   «         }d"                     d#„ ‰D ¦   «         ¦  «        }d$|z  }d%|z  }t5          ||z   ¦  «        ‚dS )(aæ  
        For a given kernel:

        The expected result is available from argument `expected`.

        The following results are then computed:
        * from a pure @stencil decoration of the kernel.
        * from the njit of a trivial wrapper function around the pure @stencil
          decorated function.
        * from the njit(parallel=True) of a trivial wrapper function around
           the pure @stencil decorated function.

        The results are then compared.
        rd   Úexpected_exceptionFNc           	   3   óZ  •K  — 	 d V — | �‰                      |¦  «         d S d S # t          $ r|}| �3t          | d¦  «        r| n| g}d}|D ]}|t          ||¦  «        z  }Œ|s‚ n<‰                      |t	          |¦  «        ›dt          |¦  «        ›�f¦  «         Y d }~d S Y d }~d S d }~ww xY w©NÚ__iter__Fú: ©ÚappendÚ	ExceptionÚhasattrÚ
isinstanceÚtyper  ©ÚextyÚusecaser"  ÚlextyÚfoundÚexÚshould_failÚshould_not_fails         €€r   Úerrorhandlerz=TestManyStencils.check_against_expected.<locals>.errorhandler®  ó4  øè è € ð0Ø���ð Ð#Ø×&Ò& wÑ/Ô/Ð/Ð/Ð/ð $Ð#øõ ð -ð -ð -ØÐ#Ý$+¨D°*Ñ$=Ô$=ÐK˜D˜DÀDÀ8�EØ!�EØ#ð 3ð 3˜Ø¥¨A¨rÑ!2Ô!2Ñ2˜˜Ø ð Øðð $×*Ò*Ø Ý˜q™'œ'˜'˜'¥3 q¡6¤6 6ð#+ð ,ñ-ô -ð -ð -ð -ð -ð -ð -ð -ðð ð ð ð ð øøøøð-øøøó   …$ ¤
B*®A+B%Â%B*r   r   ÚparforÚfunc_or_modeú@stencilr   c                 ó   •—  ‰| ¦  «        S rY   r   ©Úarg0Ústencil_func_impls    €r   Úwrap_stencilz=TestManyStencils.check_against_expected.<locals>.wrap_stencilÖ  ó   ø€ Ø(Ð(¨Ñ.Ô.Ð.r   r2   c                 ó   •—  ‰| |¦  «        S rY   r   ©rx  Úarg1ry  s     €r   rz  z=TestManyStencils.check_against_expected.<locals>.wrap_stencilÙ  ó   ø€ Ø(Ð(¨¨tÑ4Ô4Ð4r   ry   c                 ó   •—  ‰| ||¦  «        S rY   r   ©rx  r~  Úarg2ry  s      €r   rz  z=TestManyStencils.check_against_expected.<locals>.wrap_stencilÜ  ó   ø€ Ø(Ð(¨¨t°TÑ:Ô:Ð:r   ú+Up to 3 arguments can be provided, found %sc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   rj   rm   s     r   rp   z;TestManyStencils.check_against_expected.<locals>.<listcomp>ã  rq   r   Úparforsz
@stencil_output:
z
njit_output:
z
parfor_output:
rz   ra  z@stencil failed: %sz@njit failed: %sr|   z*Could not find `@do_scheduling` in LLVM IRz@njit(parallel=True) failed: %sz

c                 ó   — g | ]}d |z  ‘ŒS ©ú%sr   rm   s     r   rp   z;TestManyStencils.check_against_expected.<locals>.<listcomp>   ó   € Ð1Ð1Ð1 �4˜!‘8Ð1Ð1Ð1r   úMThe following implementations should have raised an exception but did not:
%sc                 ó$   — g | ]}d |d         z  ‘ŒS ©r‰  r   r   rm   s     r   rp   z;TestManyStencils.check_against_expected.<locals>.<listcomp>%  ó    € Ð:Ð:Ð: Q�T˜A˜aœD‘[Ð:Ð:Ð:r   Ú c                 ó   — g | ]}d |z  ‘ŒS ©z%s: Message: %s

r   rm   s     r   rp   z;TestManyStencils.check_against_expected.<locals>.<listcomp>&  ó0   € ð 8ð 8ð 8Ø"#ð 2Øñð 8ð 8ð 8r   úNThe following implementations should not have raised an exception but did:
%s
úErrors were:

%s©NNr   )ÚgetÚdictr   rf  Úupdater   r³   Ú
ValueErrorrr   rg   r}   re   Úprintr~   r   r€   ÚassertEqualré   rd  rc  rg  r  r�   r‚   rƒ   rF  ÚRuntimeErrorÚjoin)rU   rs   r…   rV   rt   rd   r]  ÚDEBUG_OUTPUTrp  Ú
stencil_exÚnjit_exÚ	parfor_exÚstencil_argsÚstencilfunc_outputrz  r^   r‡   Úwrapped_cfuncrˆ   Úwrapped_cpfuncr"  rL  rI  ÚerrsÚstr1Ústr2rn  ro  ry  s                             @@@r   Úcheck_against_expectedz'TestManyStencils.check_against_expected“  sA  øøø€ ð  —*’*˜Y­©¬Ñ/Ô/ˆØ#ŸZšZÐ(<Ñ=Ô=Ðð ˆð ˆØˆõ 
ð	0ð 	0ð 	0ð 	0ð 	0ð 	0ñ 
Œð	0õ& Ð(­$Ñ/Ô/ð 	+Ø+¨IÔ6ˆJØ(¨Ô0ˆGØ*¨8Ô4ˆIˆIà+ˆJØ(ˆGØ*ˆIà&¨Ð/ˆØ×Ò˜GÑ$Ô$Ð$à!ÐØˆ\˜* jÑ1Ô1ð 	:ð 	:Ý 'Ð 7Ð 7¨,Ð 7Ð 7Ðà!2Ð!2°DÐ!9Ðð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:õ ˆt‰9Œ9˜Š>ˆ>ð/ð /ð /ð /ð /ð /å�‰YŒY˜!Š^ˆ^ð5ð 5ð 5ð 5ð 5ð 5å�‰YŒY˜!Š^ˆ^ð;ð ;ð ;ð ;ð ;ð ;õ Ø=Ý�D‘	”	ññô ð õ Ð3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4ˆàˆØˆ\˜' 6Ñ*Ô*ð 	;ð 	;Ø ×-Ò-¨l¸CÑ@Ô@ˆMà3˜-Ô3°TÐ:ˆKð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð
 ˆØˆ\˜) YÑ/Ô/ð 	>ð 	>Ø!×2Ò2°<ÀÑEÔEˆNà6˜NÔ6¸Ð=ˆMð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð
 ð 	7ÝÐ(Ð*<Ñ=Ô=Ð=ÝÐ$ kÑ2Ô2Ð2ÝÐ&¨Ñ6Ô6Ð6ð		2Øð KÝ”
×.Ò.Ø&¨¸!ð /ñ =ô =ð =à× Ò  ¤Ð1CÔ1IÑJÔJÐJøøÝð 	2ð 	2ð 	2Ø×"Ò"ØÝ˜!‘W”W�W�W�c !™fœf˜fð&ð 'ñ(ô (ð (õ Ð'­#¨a©&¬&Ñ0Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1øøøøð		2øøøð	/Øð DÝ”
×.Ò.Ø °1ð /ñ 6ô 6ð 6à× Ò  ¤°Ô1BÑCÔCÐCøøÝð 	/ð 	/ð 	/Ø×"Ò" F½¸Q¹¼¸¸ÅÀQÁÄÀÐ,HÐ#IÑJÔJÐJÝÐ$¥s¨1¡v¤vÑ-Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.øøøøð	/øøøð	>Øð 
.Ý”
×.Ò.Ø! 8°Qð /ñ 8ô 8ð 8à× Ò  ¤°Ô1DÑEÔEÐEð.Ø—M’MØ(Ø&Ô.×;Ò;Ñ=Ô=ñ?ô ?ð ?ð ?øõ &ð .ð .ð .ØF�CÝ(¨Ñ-Ô-Ð-ð.øøøøøõ ð 	>ð 	>ð 	>Ø×"Ò"ØÝ˜!‘W”W�W�W�c !™fœf˜fð&ð 'ñ(ô (ð (õ Ð3µc¸!±f´fÑ<Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=øøøøð		>øøøð ð 	Ý�&‰MŒMˆMàð 	OØ1Ð1 [Ð1Ñ1Ô1ˆCÝð !GØJMñ Nñ Oô Oð Oð ð 	,Ø:Ð:¨/Ð:Ñ:Ô:ˆEØ—7’7ð 8ð 8Ø'6ð8ñ 8ô 8ñ 9ô 9ˆDð/Ø16ñ7ˆDà'¨$Ñ.ˆDÝ˜t d™{Ñ+Ô+Ð+ð	,ð 	,sœ   Â0CÃCÃCÅ*!FÆFÆFÆ0!GÇG!Ç$G!ÈAI  É 
K	É*AKËK	ËAL Ì
M;ÌAM6Í6M;Í?AP Ï-O2 Ï1P Ï2PÐP Ð
Q;ÐAQ6Ñ6Q;c                 ó–  ‡‡‡— |                      dt          ¦   «         ¦  «        }|                      d¦  «        }g Šg Št          dˆˆfd„	¦   «         }t          |t          ¦  «        r|d         }|d         }|d         }	n|}|}|}	d|i}
|
                     |¦  «          ||d	¦  «        5  t          di |
¤ŽŠ ‰|Ž  ddd¦  «         n# 1 swxY w Y   t          |¦  «        d
k    rˆfd„}nQt          |¦  «        dk    rˆfd„}n8t          |¦  «        dk    rˆfd„}nt          dt          |¦  «        z  ¦  «        ‚t          d„ |D ¦   «         ¦  «        } ||d¦  «        5  |  	                    ||¦  «        } |j
        |Ž  ddd¦  «         n# 1 swxY w Y    ||	d¦  «        5  |                      ||¦  «        } |j
        |Ž  ddd¦  «         n# 1 swxY w Y   ‰rd„ ‰D ¦   «         }t          d|z  ¦  «        ‚‰rGd„ ‰D ¦   «         }d                     d„ ‰D ¦   «         ¦  «        }d|z  }d|z  }t          ||z   ¦  «        ‚dS )aü  
        For a given kernel:

        The expected result is computed from a pyStencil version of the
        stencil.

        The following results are then computed:
        * from a pure @stencil decoration of the kernel.
        * from the njit of a trivial wrapper function around the pure @stencil
          decorated function.
        * from the njit(parallel=True) of a trivial wrapper function around
           the pure @stencil decorated function.

        The results are then compared.
        rd   r]  Nc           	   3   óZ  •K  — 	 d V — | �‰                      |¦  «         d S d S # t          $ r|}| �3t          | d¦  «        r| n| g}d}|D ]}|t          ||¦  «        z  }Œ|s‚ n<‰                      |t	          |¦  «        ›dt          |¦  «        ›�f¦  «         Y d }~d S Y d }~d S d }~ww xY wr_  rb  rh  s         €€r   rp  z7TestManyStencils.check_exceptions.<locals>.errorhandlerE  rq  rr  r   r   rs  rt  ru  r   c                 ó   •—  ‰| ¦  «        S rY   r   rw  s    €r   rz  z7TestManyStencils.check_exceptions.<locals>.wrap_stencill  r{  r   r2   c                 ó   •—  ‰| |¦  «        S rY   r   r}  s     €r   rz  z7TestManyStencils.check_exceptions.<locals>.wrap_stencilo  r  r   ry   c                 ó   •—  ‰| ||¦  «        S rY   r   r�  s      €r   rz  z7TestManyStencils.check_exceptions.<locals>.wrap_stencilr  rƒ  r   r„  c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   rj   rm   s     r   rp   z5TestManyStencils.check_exceptions.<locals>.<listcomp>y  rq   r   r†  c                 ó   — g | ]}d |z  ‘ŒS rˆ  r   rm   s     r   rp   z5TestManyStencils.check_exceptions.<locals>.<listcomp>†  rŠ  r   r‹  c                 ó$   — g | ]}d |d         z  ‘ŒS r�  r   rm   s     r   rp   z5TestManyStencils.check_exceptions.<locals>.<listcomp>‹  rŽ  r   r�  c                 ó   — g | ]}d |z  ‘ŒS r‘  r   rm   s     r   rp   z5TestManyStencils.check_exceptions.<locals>.<listcomp>Œ  r’  r   r“  r”  r•  r   )r–  r—  r   rf  r˜  r   r³   r™  rr   rg   r}   re   rœ  r�  )rU   rs   rV   rt   rd   r]  rp  rŸ  r   r¡  r¢  rz  r^   r¤  r¥  rL  rI  r¦  r§  r¨  rn  ro  ry  s                       @@@r   Úcheck_exceptionsz!TestManyStencils.check_exceptions-  s   øøø€ ð  —*’*˜Y­©¬Ñ/Ô/ˆØ#ŸZšZÐ(<Ñ=Ô=Ðð ˆØˆõ 
ð	0ð 	0ð 	0ð 	0ð 	0ð 	0ñ 
Œð	0õ& Ð(­$Ñ/Ô/ð 	+Ø+¨IÔ6ˆJØ(¨Ô0ˆGØ*¨8Ô4ˆIˆIà+ˆJØ(ˆGØ*ˆIà&¨Ð/ˆØ×Ò˜GÑ$Ô$Ð$àˆ\˜* jÑ1Ô1ð 	%ð 	%Ý 'Ð 7Ð 7¨,Ð 7Ð 7ÐàÐ˜tÐ$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%õ ˆt‰9Œ9˜Š>ˆ>ð/ð /ð /ð /ð /ð /å�‰YŒY˜!Š^ˆ^ð5ð 5ð 5ð 5ð 5ð 5å�‰YŒY˜!Š^ˆ^ð;ð ;ð ;ð ;ð ;ð ;õ Ø=Ý�D‘	”	ññô ð õ Ð3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4ˆàˆ\˜' 6Ñ*Ô*ð 	-ð 	-Ø ×-Ò-¨l¸CÑ@Ô@ˆMà%ˆMÔ% tÐ,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð
 ˆ\˜) YÑ/Ô/ð 	.ð 	.Ø!×2Ò2°<ÀÑEÔEˆNà&ˆNÔ&¨Ð-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð
 ð 	OØ1Ð1 [Ð1Ñ1Ô1ˆCÝð !GØJMñ Nñ Oô Oð Oð ð 	,Ø:Ð:¨/Ð:Ñ:Ô:ˆEØ—7’7ð 8ð 8Ø'6ð8ñ 8ô 8ñ 9ô 9ˆDð/Ø16ñ7ˆDà'¨$Ñ.ˆDÝ˜t d™{Ñ+Ô+Ð+ð	,ð 	,s6   Â,C
Ã
CÃCÅ$!FÆFÆFÆ(!GÇGÇGc                 óˆ   — t          ¦   «         }d |d<   d |d<   d |d<   d |d<   |                     ¦   «         D ]
\  }}|||<   Œ|S )NÚ	pyStencilr   r   rs  )r—  Úitems)rU   rt   r  ÚkÚvs        r   Úexception_dictzTestManyStencils.exception_dict“  sZ   € Ý‰FŒFˆØˆˆ+‰Øˆˆ)‰Øˆˆ&‰	Øˆˆ(‰Ø—L’L‘N”Nð 	ð 	‰DˆAˆqØˆAˆa‰DˆDØˆr   c                 ó  — |                      d¦  «        }|d         j        }|�/t          |¦  «        t          |¦  «        k    rt          d¦  «        ‚|dd …         D ],}t	          |d¦  «        r||j        k    rt          d¦  «        ‚Œ-d S )Nr#   r   zInvalid neighborhood suppliedr   Úshapez#Input stencil arrays do not commute)r–  r»  r³   r™  re  )rU   rV   rt   r#   Ú
init_shapero   s         r   Úcheck_stencil_arraysz%TestManyStencils.check_stencil_arrays�  s¡   € Ø—z’z .Ñ1Ô1ˆØ˜!”W”]ˆ
ØÐ#Ý�:‰Œ¥# lÑ"3Ô"3Ò3Ð3Ý Ð!@ÑAÔAÐAØ�a�b�b”ð 	Lð 	LˆAÝ�q˜'Ñ"Ô"ð LØ ¤Ò(Ð(Ý$Ð%JÑKÔKÐKøð	Lð 	Lr   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z	rel indexc                 ó   — | d         S r=   r   r   s    r   r8  z-TestManyStencils.test_basic00.<locals>.kernelª  ó   € Ø�T”7ˆNr   c                 ó@  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S ©Nr"   r   rè   r   ©r½  r~   Úfullr»  rg  r(   ©r   r#   Ú_TestManyStencils__retdtypeÚ_TestManyStencils__b0Ú_TestManyStencils__bÚ_TestManyStencils__ar8  rU   s         €€r   Ú__kernelz/TestManyStencils.test_basic00.<locals>.__kernel°  s²   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð 9ð 9�Ý   A¤G¨A¤JÑ/Ô/ð 9ð 9�CØ%& s¨Q¡w°°a±Ð'7Ô%8�D˜˜c˜‘N�Nð9àˆKr   r;  ry   rÈ   N©r~   r˜   r™   r©  ©rU   Ú_TestManyStencils__kernelr   r…   r8  s   `   @r   Útest_basic00zTestManyStencils.test_basic00¨  s   øø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )úrel index add constc                 ó   — | d         S ©Nr   r   r   s    r   r8  z-TestManyStencils.test_basic01.<locals>.kernelÀ  rÀ  r   c                 óF  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S rÂ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic01.<locals>.__kernelÆ  ó¶   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð 9ð 9�Ý   A¤G¨A¤JÑ/Ô/ð 9ð 9�CØ%& s¨Q¡w°°a±Ð'7Ô%8�D˜˜c˜‘N�Nð9àˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic01zTestManyStencils.test_basic01¾  ó   øø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó   — | d         S )Nr   r   r   s    r   r8  z-TestManyStencils.test_basic02.<locals>.kernelÖ  ó   € Ø�U”8ˆOr   c                 ó@  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S ©Nr"   r   rè   r   r   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic02.<locals>.__kernelÜ  s²   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð :ð :�Ý   A¤G¨A¤JÑ/Ô/ð :ð :�CØ%& s¨Q¡w°°b±Ð'8Ô%9�D˜˜c˜‘N�Nð:àˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic02zTestManyStencils.test_basic02Ô  ó   øø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó   — | d         S )Nr   r   r   s    r   r8  z-TestManyStencils.test_basic03.<locals>.kernelì  rÀ  r   c                 óF  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]8}t          d| j        d         dz
  ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ9|S rÂ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic03.<locals>.__kernelò  s¶   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð 9ð 9�Ý   A¤G¨A¤J°¡NÑ3Ô3ð 9ð 9�CØ%& s¨Q¡w°°a±Ð'7Ô%8�D˜˜c˜‘N�Nð9àˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic03zTestManyStencils.test_basic03ê  rÖ  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó   — | d         S )Nr   r   r   s    r   r8  z-TestManyStencils.test_basic04.<locals>.kernel  rÙ  r   c                 ó@  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S rÛ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic04.<locals>.__kernel  s²   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð :ð :�Ý   A¤G¨A¤JÑ/Ô/ð :ð :�CØ%& s¨R¡x°°q±Ð'8Ô%9�D˜˜c˜‘N�Nð:àˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic04zTestManyStencils.test_basic04   rÝ  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó   — | d         S )N©r   r   r   r   s    r   r8  z-TestManyStencils.test_basic05.<locals>.kernel  rÙ  r   c                 óF  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S rÛ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic05.<locals>.__kernel  ó¶   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð :ð :�Ý   A¤G¨A¤JÑ/Ô/ð :ð :�CØ%& s¨R¡x°°q±Ð'8Ô%9�D˜˜c˜‘N�Nð:àˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic05zTestManyStencils.test_basic05  rÝ  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó   — | d         S )N©r   r   r   r   s    r   r8  z-TestManyStencils.test_basic06.<locals>.kernel.  rÙ  r   c                 óF  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]8}t          d| j        d         dz
  ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ9|S rÛ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic06.<locals>.__kernel4  s¶   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð :ð :�Ý   A¤G¨A¤J°¡NÑ3Ô3ð :ð :�CØ%& s¨Q¡w°°b±Ð'8Ô%9�D˜˜c˜‘N�Nð:àˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic06zTestManyStencils.test_basic06,  rÝ  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó   — | d         S )N©r   r   r   r   s    r   r8  z-TestManyStencils.test_basic07.<locals>.kernelD  rÀ  r   c                 óL  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]8}t          d| j        d         dz
  ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ9|S rÂ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic07.<locals>.__kernelJ  sº   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð 9ð 9�Ý   A¤G¨A¤J°¡NÑ3Ô3ð 9ð 9�CØ%& s¨Q¡w°°a±Ð'7Ô%8�D˜˜c˜‘N�Nð9àˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic07zTestManyStencils.test_basic07B  rÖ  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó   — | d         S )N©r   r   r   r   s    r   r8  z-TestManyStencils.test_basic08.<locals>.kernelZ  ó   € Ø�V”9Ðr   c                 ó@  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S rÛ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic08.<locals>.__kernel`  ó²   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð ;ð ;�Ý   A¤G¨A¤JÑ/Ô/ð ;ð ;�CØ%& s¨R¡x°°r±Ð'9Ô%:�D˜˜c˜‘N�Nð;àˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic08zTestManyStencils.test_basic08X  s   øø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó   — | d         S )Nr0   r   r   s    r   r8  z-TestManyStencils.test_basic09.<locals>.kernelp  rÙ  r   c                 óF  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S )Nr"   r   rè   r   r2   r1   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic09.<locals>.__kernelv  rê  r   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic09zTestManyStencils.test_basic09n  rÝ  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó$   — | d         | d         z   S r7  r   r   s    r   r8  z-TestManyStencils.test_basic10.<locals>.kernel†  ó   € Ø�T”7˜Q˜tœWÑ$Ð$r   c                 óh  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]I}t          d| j        d         dz
  ¦  «        D ](}| |dz   |dz   f         | |dz   |dz   f         z   |||f<   Œ)ŒJ|S rÂ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic10.<locals>.__kernel‹  sÒ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð Oð O�Ý   A¤G¨A¤J°¡NÑ3Ô3ð Oð O�CØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸SÀ1¹WÀcÈAÁgÐ=MÔ;NÑ%N�D˜˜c˜‘N�NðOàˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic10zTestManyStencils.test_basic10„  s   øø€ ð	%ð 	%ð 	%ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó$   — | d         | d         z   S )Nr   r   r   r   s    r   r8  z-TestManyStencils.test_basic11.<locals>.kernel›  s   € Ø�U”8˜a œgÑ%Ð%r   c                 óh  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]I}t          d| j        d         dz
  ¦  «        D ](}| |dz   |dz   f         | |dz   |dz   f         z   |||f<   Œ)ŒJ|S rÛ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic11.<locals>.__kernel   sÒ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð Pð P�Ý   A¤G¨A¤J°¡NÑ3Ô3ð Pð P�CØ%& s¨R¡x°°q±Ð'8Ô%9¸A¸cÀA¹gÀsÈQÁwÐ>NÔ<OÑ%O�D˜˜c˜‘N�NðPàˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic11zTestManyStencils.test_basic11™  s   øø€ ð	&ð 	&ð 	&ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó$   — | d         | d         z   S )Nrè  rî  r   r   s    r   r8  z-TestManyStencils.test_basic12.<locals>.kernel°  s   € Ø�U”8˜a œhÑ&Ð&r   c                 ón  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]I}t          d| j        d         dz
  ¦  «        D ](}| |dz   |dz   f         | |dz   |dz   f         z   |||f<   Œ)ŒJ|S rÛ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic12.<locals>.__kernelµ  sÖ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Qð Q�Ý   A¤G¨A¤J°¡NÑ3Ô3ð Qð Q�CØ%& s¨R¡x°°q±Ð'8Ô%9¸A¸cÀA¹gÀsÈRÁxÐ>OÔ<PÑ%P�D˜˜c˜‘N�NðQàˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic12zTestManyStencils.test_basic12®  ó   øø€ ð	'ð 	'ð 	'ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÐ  c                 ó$   — | d         | d         z   S )Nrø  ró  r   r   s    r   r8  z-TestManyStencils.test_basic13.<locals>.kernelÅ  s   € Ø�V”9˜q œwÑ&Ð&r   c                 ón  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]I}t          d| j        d         dz
  ¦  «        D ](}| |dz   |dz   f         | |dz   |dz   f         z   |||f<   Œ)ŒJ|S rÛ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic13.<locals>.__kernelÊ  sÖ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Qð Q�Ý   A¤G¨A¤J°¡NÑ3Ô3ð Qð Q�CØ%& s¨R¡x°°r±Ð'9Ô%:¸Q¸sÀQ¹wÈÈaÉÐ?OÔ=PÑ%P�D˜˜c˜‘N�NðQàˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic13zTestManyStencils.test_basic13Ã  r  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )ú!rel index add domain change constc                 ó   — | d         dz   S )Nr>   rC  r   r   s    r   r8  z-TestManyStencils.test_basic14.<locals>.kernelÚ  s   € Ø�T”7˜R‘<Ðr   c                 óF  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]8}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         dz   |||f<   ŒŒ9|S ©Nr"   r   rè   r   rC  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic14.<locals>.__kernelß  s¼   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð @ð @�Ý   A¤G¨A¤JÑ/Ô/ð @ð @�CØ%& s¨Q¡w°°a±Ð'7Ô%8¸4Ñ%?�D˜˜c˜‘N�Nð@àˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic14zTestManyStencils.test_basic14Ø  s   øø€ ð	 ð 	 ð 	 ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )r  c                 ó   — d}| d         |z   S )NrC  r>   r   ©r   Úts     r   r8  z.TestManyStencils.test_basic14b.<locals>.kernelï  s   € ØˆAØ�T”7˜Q‘;Ðr   c                 óJ  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]:}t          d| j        d         ¦  «        D ]}d}| |dz   |dz   f         |z   |||f<   ŒŒ;|S r  rÃ  ©	r   r#   rÆ  rÇ  rÈ  rÉ  r  r8  rU   s	          €€r   rÊ  z0TestManyStencils.test_basic14b.<locals>.__kernelõ  s¾   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð =ð =�Ý   A¤G¨A¤JÑ/Ô/ð =ð =�CØ�AØ%& s¨Q¡w°°a±Ð'7Ô%8¸1Ñ%<�D˜˜c˜‘N�Nð=ð ˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic14bzTestManyStencils.test_basic14bí  s   øø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )ztwo rel index, add constc                 ó*   — | d         | d         z   dz   S )Nr>   r   r,   r   r   s    r   r8  z-TestManyStencils.test_basic15.<locals>.kernel  ó   € Ø�T”7˜Q˜tœWÑ$ rÑ)Ð)r   c                 ón  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]L}t          d| j        d         dz
  ¦  «        D ]+}| |dz   |dz   f         | |dz   |dz   f         z   dz   |||f<   Œ,ŒM|S ©Nr"   r   rè   r   r,   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic15.<locals>.__kernel  óà   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð Að A�Ý   A¤G¨A¤J°¡NÑ3Ô3ð Að A�CØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨a©°°q±Ð(8Ô&9ñ':Ø<?ñ'@�D˜˜c˜‘N�NðAð ˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic15zTestManyStencils.test_basic15  s   øø€ ð	*ð 	*ð 	*ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )ú&two rel index boundary test, add constc                 ó*   — | d         | d         z   dz   S )Nr>   )r2   r   r,   r   r   s    r   r8  z-TestManyStencils.test_basic17.<locals>.kernel  r"  r   c                 ón  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]L}t          d| j        d         dz
  ¦  «        D ]+}| |dz   |dz   f         | |dz   |dz   f         z   dz   |||f<   Œ,ŒM|S )Nr"   r   rè   r   r2   r,   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic17.<locals>.__kernel!  r%  r   r;  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic17zTestManyStencils.test_basic17  ó   øø€ ð	*ð 	*ð 	*ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )r(  c                 ó*   — | d         | d         z   dz   S )Nr>   ©r1   r   r,   r   r   s    r   r8  z-TestManyStencils.test_basic18.<locals>.kernel2  ó   € Ø�T”7˜Q˜uœXÑ%¨Ñ*Ð*r   c                 óh  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]I}t          d| j        d         ¦  «        D ]+}| |dz   |dz   f         | |dz   |dz   f         z   dz   |||f<   Œ,ŒJ|S )Nr"   r   rè   r   r2   r1   r,   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic18.<locals>.__kernel7  sÜ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð Bð B�Ý   A¤G¨A¤JÑ/Ô/ð Bð B�CØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨b©°#¸±'Ð(9Ô&:ñ';Ø=@ñ'A�D˜˜c˜‘N�NðBð ˆKr   r;  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic18zTestManyStencils.test_basic180  ó   øø€ ð	+ð 	+ð 	+ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )r(  c                 ó*   — | d         | d         z   dz   S )Nr>   ©r   ry   r,   r   r   s    r   r8  z-TestManyStencils.test_basic19.<locals>.kernelH  r"  r   c                 ón  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]I}t          d| j        d         ¦  «        D ]+}| |dz   |dz   f         | |dz   |dz   f         z   dz   |||f<   Œ,ŒJ|S )Nr"   r   rè   r   ry   r,   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic19.<locals>.__kernelM  sà   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Að A�Ý   A¤G¨A¤JÑ/Ô/ð Að A�CØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨a©°°q±Ð(8Ô&9ñ':Ø<?ñ'@�D˜˜c˜‘N�NðAð ˆKr   r;  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic19zTestManyStencils.test_basic19F  r,  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )r(  c                 ó*   — | d         | d         z   dz   S )Nr>   )r   éýÿÿÿr,   r   r   s    r   r8  z-TestManyStencils.test_basic20.<locals>.kernel^  r0  r   c                 óh  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]I}t          d| j        d         ¦  «        D ]+}| |dz   |dz   f         | |dz   |dz   f         z   dz   |||f<   Œ,ŒJ|S )Nr"   r   rè   ry   r   r;  r,   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic20.<locals>.__kernelc  sÜ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð Bð B�Ý   A¤G¨A¤JÑ/Ô/ð Bð B�CØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨a©°°r±Ð(9Ô&:ñ';Ø=@ñ'A�D˜˜c˜‘N�NðBð ˆKr   r;  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic20zTestManyStencils.test_basic20\  r3  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )zsame rel, add constc                 ó*   — | d         | d         z   dz   S )Nr>   r,   r   r   s    r   r8  z-TestManyStencils.test_basic21.<locals>.kernelt  r"  r   c                 óh  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]I}t          d| j        d         ¦  «        D ]+}| |dz   |dz   f         | |dz   |dz   f         z   dz   |||f<   Œ,ŒJ|S r$  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic21.<locals>.__kernely  sÜ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð Að A�Ý   A¤G¨A¤JÑ/Ô/ð Að A�CØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨a©°°q±Ð(8Ô&9ñ':Ø<?ñ'@�D˜˜c˜‘N�NðAð ˆKr   r;  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic21zTestManyStencils.test_basic21r  r,  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z%rel idx const expr folding, add constc                 ó*   — | d         | d         z   dz   S )Nr   r>   r,   r   r   s    r   r8  z-TestManyStencils.test_basic22.<locals>.kernelŠ  s   € Ø�X”;  4¤Ñ(¨2Ñ-Ð-r   c                 ón  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]L}t          d| j        d         dz
  ¦  «        D ]+}| |dz   |dz   f         | |dz   |dz   f         z   dz   |||f<   Œ,ŒM|S r$  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic22.<locals>.__kernel�  r%  r   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic22zTestManyStencils.test_basic22ˆ  s   øø€ ð	.ð 	.ð 	.ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )zrel idx, work in bodyc                 ód   — t          j        d| d         z   ¦  «        }| d         | d         z   |z   S ©Nr1  )r2   r   r   r>   ©r~   Úsin©r   ro   s     r   r8  z-TestManyStencils.test_basic23.<locals>.kernel   s1   € Ý”�r˜A˜dœG‘|Ñ$Ô$ˆAØ�X”;  4¤Ñ(¨1Ñ,Ð,r   c           	      ó¾  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]q}t          d| j        d         dz
  ¦  «        D ]P}t          j        d| |dz   |dz   f         z   ¦  «        }| |dz   |dz   f         | |dz   |dz   f         z   |z   |||f<   ŒQŒr|S ©Nr"   r   rè   r   r2   r1  ©r½  r~   rÄ  r»  rg  r(   rJ  ©	r   r#   rÆ  rÇ  rÈ  rÉ  ro   r8  rU   s	          €€r   rÊ  z/TestManyStencils.test_basic23.<locals>.__kernel¦  s  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð ?ð ?�Ý   A¤G¨A¤J°¡NÑ3Ô3ð ?ð ?�CÝœ˜r A c¨A¡g¨s°Q©wÐ&6Ô$7Ñ7Ñ8Ô8�AØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨a©°°q±Ð(8Ô&9ñ':Ø<=ñ'>�D˜˜c˜‘N�Nð?ð ˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic23zTestManyStencils.test_basic23ž  s   øø€ ð	-ð 	-ð 	-ð		ð 		ð 		ð 		ð 		ð 		õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z,rel idx, dead code should not impact rel idxc                 ó^   — t          j        d| d         z   ¦  «        }| d         | d         z   S rH  rI  rK  s     r   r8  z.TestManyStencils.test_basic23a.<locals>.kernel¸  s,   € Ý”�r˜A˜dœG‘|Ñ$Ô$ˆAØ�X”;  4¤Ñ(Ð(r   c           	      ó¸  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]n}t          d| j        d         dz
  ¦  «        D ]M}t          j        d| |dz   |dz   f         z   ¦  «        }| |dz   |dz   f         | |dz   |dz   f         z   |||f<   ŒNŒo|S rM  rN  rO  s	          €€r   rÊ  z0TestManyStencils.test_basic23a.<locals>.__kernel¾  sþ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Oð O�Ý   A¤G¨A¤J°¡NÑ3Ô3ð Oð O�CÝœ˜r A c¨A¡g¨s°Q©wÐ&6Ô$7Ñ7Ñ8Ô8�AØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸SÀ1¹WÀcÈAÁgÐ=MÔ;NÑ%N�D˜˜c˜‘N�NðOð ˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic23azTestManyStencils.test_basic23a¶  s   øø€ ð	)ð 	)ð 	)ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó˜   — t          j        d¦  «                             dd¦  «        }d„ }|                      ||t          g¬¦  «         dS )z1d idx on 2d arrr;  ry   rÈ   c                 ó   — | d         dz   S )Nr   r,   r   r   s    r   r8  z-TestManyStencils.test_basic24.<locals>.kernelÑ  s   € Ø�Q”4˜"‘9Ðr   ©r]  N)r~   r˜   r™   r³  r   ©rU   r   r8  s      r   Útest_basic24zTestManyStencils.test_basic24Í  sS   € åŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆð	ð 	ð 	ð 	×Ò˜f a½[¸NÐÑKÔKÐKÐKÐKr   c                 ó¤   — t          j        d¦  «                             dd¦  «        }d„ }|                      ||t          t
          g¬¦  «         dS )zno idx on 2d arrr;  ry   rÈ   c                 ó   — dS )Nr,   r   r   s    r   r8  z-TestManyStencils.test_basic25.<locals>.kernelÚ  s   € Ø�2r   rW  N©r~   r˜   r™   r³  r™  r   rX  s      r   Útest_basic25zTestManyStencils.test_basic25Ö  sg   € åŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆð	ð 	ð 	à×Ò˜f a½ZÝ=Lð=OÐñ 	Pô 	Pð 	Pð 	Pð 	Pr   c                 ó´   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             ddd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z3d arrc                 ó*   — | d         | d         z
  dz   S )N)r   r   r   )r   r   r   r,   r   r   s    r   r8  z-TestManyStencils.test_basic26.<locals>.kernelâ  s   € Ø�W”:  '¤
Ñ*¨RÑ/Ð/r   c           	      ó¼  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]s}t          d| j        d         dz
  ¦  «        D ]R}t          d| j        d         ¦  «        D ]4}| |dz   |dz   |dz   f         | |dz   |dz   |dz   f         z
  dz   ||||f<   Œ5ŒSŒt|S )Nr"   r   rè   r2   r   r,   rÃ  )	r   r#   rÆ  rÇ  Ú_TestManyStencils__crÈ  rÉ  r8  rU   s	          €€r   rÊ  z/TestManyStencils.test_basic26.<locals>.__kernelç  s  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð 4ð 4�Ý   A¤G¨A¤J°¡NÑ3Ô3ð 4ð 4�CÝ$ Q¨¬°¬
Ñ3Ô3ð 4ð 4˜Ø/0°°q±¸#À¹'À3ÈÁ7Ð1JÔ/KØ/0°°q±¸#À¹'À3ÈÁ7Ð1JÔ/Kñ0Là/2ñ03˜˜S # s˜]Ñ+Ð+ð4ð4ð
 ˆKr   é@   rÈ   é   r2   NrË  rÌ  s   `   @r   Útest_basic26zTestManyStencils.test_basic26ß  s�   øø€ ð	0ð 	0ð 	0ð

	ð 
	ð 
	ð 
	ð 
	ð 
	õ ŒI�b‰MŒM×!Ò! ! Q¨Ñ*Ô*ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó¶   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dddd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z4d arrc                 ó*   — | d         | d         z
  dz   S )N)r   r   r   r   )r   r   r   r   r,   r   r   s    r   r8  z-TestManyStencils.test_basic27.<locals>.kernelú  s   € Ø�Z”= 1 [¤>Ñ1°BÑ6Ð6r   c                 ó
  •— ‰	                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]š}t          d| j        d         ¦  «        D ]|}t          d| j        d         dz
  ¦  «        D ][}t          d| j        d         ¦  «        D ]=}| |dz   |dz   |dz   |dz   f         | |dz   |dz   |dz   |dz   f         z
  dz   |||||f<   Œ>Œ\Œ}Œ›|S )	Nr"   r   rè   r   ry   r2   r   r,   rÃ  )
r   r#   rÆ  rÇ  Ú_TestManyStencils__dra  rÈ  rÉ  r8  rU   s
           €€r   rÊ  z/TestManyStencils.test_basic27.<locals>.__kernel   sR  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð =ð =�Ý   A¤G¨A¤JÑ/Ô/ð =ð =�CÝ$ Q¨¬°¬
°Q©Ñ7Ô7ð =ð =˜Ý#(¨¨A¬G°A¬JÑ#7Ô#7ð =ð =˜CØ89¸#À¹'À3ÈÁ7Ø:=À¹'À3ÈÁ7ð;Kô 9Là89¸#À¹'À3ÈÁ7Ø:=À¹'À3ÈÁ8ð;Lô 9Mñ9Mð 9<ñ	9<˜D  c¨3°Ð!3Ñ4Ð4ð=ð=ð=ð ˆKr   é€   rÈ   rc  r2   NrË  rÌ  s   `   @r   Útest_basic27zTestManyStencils.test_basic27ø  sƒ   øø€ ð	7ð 	7ð 	7ð	ð 	ð 	ð 	ð 	ð 	õ  ŒI�c‰NŒN×"Ò" 1 a¨¨AÑ.Ô.ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 óì   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «                             t           j        ¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )ztype widen c                 ó<   — | d         t          j        d¦  «        z   S )Nr>   ç      $@)r~   r(  r   s    r   r8  z-TestManyStencils.test_basic28.<locals>.kernel  s   € Ø�T”7�RœZ¨™_œ_Ñ,Ð,r   c                 ój  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]J}t          d| j        d         ¦  «        D ],}| |dz   |dz   f         t          j        d¦  «        z   |||f<   Œ-ŒK|S )Nr"   r   rè   r   rm  )r½  r~   rÄ  r»  rg  r(   r(  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic28.<locals>.__kernel  sÆ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð Lð L�Ý   A¤G¨A¤JÑ/Ô/ð Lð L�CØ%& s¨Q¡w°°a±Ð'7Ô%8½2¼:ÀdÑ;KÔ;KÑ%K�D˜˜c˜‘N�NðLàˆKr   r;  ry   rÈ   N©r~   r˜   r™   ÚastypeÚfloat32r©  rÌ  s   `   @r   Útest_basic28zTestManyStencils.test_basic28  s�   øø€ ð	-ð 	-ð 	-ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�b‰MŒM×!Ò! ! QÑ'Ô'×.Ò.­r¬zÑ:Ô:ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó°   — t          j        d¦  «                             dd¦  «        }d„ }|                      ||t          t
          t          g¬¦  «         dS )zconst index from func rT  ry   rÈ   c                 óT   — | dt          t          j        d¦  «        ¦  «        f         S )Nr   )r0  r~   Úcosr   s    r   r8  z-TestManyStencils.test_basic29.<locals>.kernel.  s    € Ø�Q��BœF 1™IœI™œÐ&Ô'Ð'r   rW  N©r~   r˜   r™   r³  r™  r   r   rX  s      r   Útest_basic29zTestManyStencils.test_basic29*  sj   € åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆð	(ð 	(ð 	(à×Ò˜f a½ZÝ=LÝ=Jð=LÐñ 	Mô 	Mð 	Mð 	Mð 	Mr   c                 óì   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «                             t           j        ¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )zsigned zerosc                 ó   — | d         S r=   r   r   s    r   r8  z-TestManyStencils.test_basic30.<locals>.kernel6  rù  r   c                 ó@  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S rÂ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic30.<locals>.__kernel;  rû  r   r;  ry   rÈ   Nro  rÌ  s   `   @r   Útest_basic30zTestManyStencils.test_basic304  s�   øø€ ð	ð 	ð 	ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�b‰MŒM×!Ò! ! QÑ'Ô'×.Ò.­r¬zÑ:Ô:ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 óì   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «                             t           j        ¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )zdoes a const propagate? 2Dc                 ó   — d}| |df         S ©Nr   r   r   r  s     r   r8  z-TestManyStencils.test_basic31.<locals>.kernelK  s   € ØˆAØ�Q˜�T”7ˆNr   c                 óJ  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]:}t          d| j        d         dz
  ¦  «        D ]}d}| ||z   |dz   f         |||f<   ŒŒ;|S rÂ  rÃ  r  s	          €€r   rÊ  z/TestManyStencils.test_basic31.<locals>.__kernelQ  s½   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð 9ð 9�Ý   A¤G¨A¤J°¡NÑ3Ô3ð 9ð 9�CØ�AØ%& s¨Q¡w°°a±Ð'7Ô%8�D˜˜c˜‘N�Nð9ð ˆKr   r;  ry   rÈ   Nro  rÌ  s   `   @r   Útest_basic31zTestManyStencils.test_basic31I  s�   øø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�b‰MŒM×!Ò! ! QÑ'Ô'×.Ò.­r¬zÑ:Ô:ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   z constant folding not implementedc                 ó\   — t          j        d¦  «                             dd¦  «        }d„ }dS )zdoes a const propagate?rT  ry   rÈ   c                 ó$   — d}d|z
  }| |df         S r~  r   )r   Úsr  s      r   r8  z.TestManyStencils.test_basic31b.<locals>.kerneld  s   € ØˆAØ�A‘ˆAØ�Q˜�T”7ˆNr   N)r~   r˜   r™   rX  s      r   Útest_basic31bzTestManyStencils.test_basic31b_  s:   € õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆð	ð 	ð 	ð 	ð 	r   c                 óŠ   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )zdoes a const propagate? 1Dc                 ó   — d}| |         S rG   r   r  s     r   r8  z.TestManyStencils.test_basic31c.<locals>.kernelm  s   € ØˆAØ�Q”4ˆKr   c                 ó  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]}d}| ||z            ||f<   Œ|S rÂ  rÃ  )r   r#   rÆ  rÇ  rÉ  r  r8  rU   s         €€r   rÊ  z0TestManyStencils.test_basic31c.<locals>.__kernels  s‹   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð (ð (�Ø�Ø˜s Q™wœZ��S�T‘
�
ØˆKr   rT  N©r~   r˜   r©  rÌ  s   `   @r   Útest_basic31czTestManyStencils.test_basic31ck  so   øø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒNˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó°   — t          j        d¦  «                             dd¦  «        }d„ }|                      ||t          t
          t          g¬¦  «         dS )ztyped int indexrT  ry   rÈ   c                 ó:   — | t          j        d¦  «        df         S r~  )r~   Úint8r   s    r   r8  z-TestManyStencils.test_basic32.<locals>.kernel„  s   € Ø•R”W˜Q‘Z”Z �]Ô#Ð#r   rW  Nrv  rX  s      r   Útest_basic32zTestManyStencils.test_basic32€  sj   € åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆð	$ð 	$ð 	$à×Ò˜f a½ZÝ=LÝ=Jð=LÐñ 	Mô 	Mð 	Mð 	Mð 	Mr   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )zadd 0d arrayc                 ó<   — | d         t          j        d¦  «        z   S )Nr>   r   )r~   Úarrayr   s    r   r8  z-TestManyStencils.test_basic33.<locals>.kernelŒ  s   € Ø�T”7�RœX a™[œ[Ñ(Ð(r   c                 ój  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]J}t          d| j        d         ¦  «        D ],}| |dz   |dz   f         t          j        d¦  «        z   |||f<   Œ-ŒK|S rÂ  )r½  r~   rÄ  r»  rg  r(   r�  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic33.<locals>.__kernel‘  sÄ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð Gð G�Ý   A¤G¨A¤JÑ/Ô/ð Gð G�CØ%& s¨Q¡w°°a±Ð'7Ô%8½2¼8ÀA¹;¼;Ñ%F�D˜˜c˜‘N�NðGàˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic33zTestManyStencils.test_basic33Š  s   øø€ ð	)ð 	)ð 	)ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z<More complex rel index with dependency on addition rel indexc                 óˆ   — d| d         z   }|| d         | d         z   | d         z   t          j        | d         ¦  «        z   z   S )Nç      @r   r   r   r/  rI  )r   Úgs     r   r8  z-TestManyStencils.test_basic34.<locals>.kernel   sC   € Ø�Q�t”W‘ˆAØ˜˜$œ ! D¤'Ñ)¨A¨e¬HÑ4µr´v¸aÀ¼hÑ7GÔ7GÑGÑHÐHr   c           
      ó  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]“}t          d| j        d         dz
  ¦  «        D ]r}d| |dz   |dz   f         z   }|| |dz   |dz   f         | |dz   |dz   f         z   | |dz   |dz   f         z   t          j        | |dz   |dz   f         ¦  «        z   z   |||f<   ŒsŒ”|S )	Nr"   r   rè   r   r2   r•  r   r1   rN  )	r   r#   rÆ  rÇ  rÈ  rÉ  r–  r8  rU   s	          €€r   rÊ  z/TestManyStencils.test_basic34.<locals>.__kernel¦  s@  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Hð H�Ý   A¤G¨A¤J°¡NÑ3Ô3ð Hð H�CØ˜a  a¡¨¨q©Ð 0Ô1Ñ1�AØ%&¨!¨C°!©G°S¸1±WÐ,<Ô*=Ø*+¨C°!©G°S¸1±WÐ,<Ô*=ñ+>à*+¨C°!©G°S¸2±XÐ,=Ô*>ñ+?õ +-¬&°°3¸±8¸SÀ1¹WÐ3DÔ1EÑ*FÔ*Fñ+Gñ &H�D˜˜c˜‘N�NðHð ˆKr   é�   r;  NrË  rÌ  s   `   @r   Útest_basic34zTestManyStencils.test_basic34ž  s‚   øø€ ð	Ið 	Ið 	Ið	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 2 rÑ*Ô*ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 óº   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||ddi¬	¦  «         dS )
z<simple cval where cval is int but castable to dtype of floatc                 ó   — | d         S rÒ  r   r   s    r   r8  z-TestManyStencils.test_basic35.<locals>.kernel¹  rÀ  r   c                 óF  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S )Nr"   r±   rè   r   r   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic35.<locals>.__kernel¾  rÔ  r   rT  ry   rÈ   Nr.   r±   ©rd   rË  rÌ  s   `   @r   Útest_basic35zTestManyStencils.test_basic35·  sˆ   øø€ ð	ð 	ð 	ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÀ&È!ÀÐ#ÑMÔMÐMÐMÐMr   c                 óº   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||ddi¬	¦  «         dS )
zmore complex with cvalc                 óH   — | d         | d         z   | d         z   | d         z   S ©Nr   r   rî  r   r   s    r   r8  z-TestManyStencils.test_basic36.<locals>.kernelÍ  ó'   € Ø�T”7˜Q˜uœXÑ%¨¨%¬Ñ0°1°U´8Ñ;Ð;r   c                 ó²  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]k}t          d| j        d         dz
  ¦  «        D ]J}| |dz   |dz   f         | |dz   |dz   f         z   | |dz   |dz   f         z   | |dz   |dz   f         z   |||f<   ŒKŒl|S )Nr"   g      @rè   r   r   r   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic36.<locals>.__kernelÒ  s  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 C­t°JÑ/?Ô/?Ð@Ñ@Ô@ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð <ð <�Ý   A¤G¨A¤J°¡NÑ3Ô3ð <ð <�CØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨a©°°r±Ð(9Ô&:ñ';à&'¨¨a©°°r±Ð(9Ô&:ñ';ð '(¨¨a©°°r±Ð(9Ô&:ñ';�D˜˜c˜‘N�Nð<ð
 ˆKr   rT  ry   rÈ   Nr.   r±   r�  rË  rÌ  s   `   @r   Útest_basic36zTestManyStencils.test_basic36Ë  sˆ   øø€ ð	<ð 	<ð 	<ð

	ð 
	ð 
	ð 
	ð 
	ð 
	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÀ&È!ÀÐ#ÑMÔMÐMÐMÐMr   c                 óº   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||ddi¬	¦  «         dS )
zcval is exprc                 óH   — | d         | d         z   | d         z   | d         z   S r¡  r   r   s    r   r8  z-TestManyStencils.test_basic37.<locals>.kernelä  r¢  r   c                 ó²  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]k}t          d| j        d         dz
  ¦  «        D ]J}| |dz   |dz   f         | |dz   |dz   f         z   | |dz   |dz   f         z   | |dz   |dz   f         z   |||f<   ŒKŒl|S )Nr"   ç      Q@rè   r   r   r   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic37.<locals>.__kernelé  ó  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 Dµ°ZÑ0@Ô0@ÐAÑAÔAˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð <ð <�Ý   A¤G¨A¤J°¡NÑ3Ô3ð <ð <�CØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨a©°°r±Ð(9Ô&:ñ';à&'¨¨a©°°r±Ð(9Ô&:ñ';ð '(¨¨a©°°r±Ð(9Ô&:ñ';�D˜˜c˜‘N�Nð<ð
 ˆKr   rT  ry   rÈ   Nr.   r¨  r�  rË  rÌ  s   `   @r   Útest_basic37zTestManyStencils.test_basic37â  s–   øø€ ð	<ð 	<ð 	<ð

	ð 
	ð 
	ð 
	ð 
	ð 
	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aØ-3°WÐ,=ð 	$ñ 	?ô 	?ð 	?ð 	?ð 	?r   c                 óà   — d„ }t          j        d¦  «                             dd¦  «        }|                      t          t
          t          ¬¦  «        }|                      ||ddi|¬¦  «         d	S )
zcval is complexc                 óH   — | d         | d         z   | d         z   | d         z   S r¡  r   r   s    r   r8  z-TestManyStencils.test_basic38.<locals>.kernelü  r¢  r   rT  ry   rÈ   ©r   rs  r   r.   rC  ©rd   r]  N©r~   r˜   r™   r¹  r   r™  r³  ©rU   r8  r   rm  s       r   Útest_basic38zTestManyStencils.test_basic38ú  s‡   € ð	<ð 	<ð 	<åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ× Ò Ý#ÝÝ ð !ñ "ô "ˆð 	×Ò˜f a°&¸#°Ø13ð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r   c                 ó  ‡ ‡‡— d„ Št          j        d¦  «        t          j        d¦  «        z   Šˆˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||d	‰i¬
¦  «         dS )zcval is func exprc                 óH   — | d         | d         z   | d         z   | d         z   S r¡  r   r   s    r   r8  z-TestManyStencils.test_basic39.<locals>.kernel  r¢  r   rÒ   r2   c                 ó²  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        ‰t	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]k}t          d| j        d         dz
  ¦  «        D ]J}| |dz   |dz   f         | |dz   |dz   f         z   | |dz   |dz   f         z   | |dz   |dz   f         z   |||f<   ŒKŒl|S )Nr"   rè   r   r   r   rÃ  )	r   r#   rÆ  rÇ  rÈ  rÉ  r.   r8  rU   s	         €€€r   rÊ  z/TestManyStencils.test_basic39.<locals>.__kernel  r©  r   rT  ry   rÈ   Nr.   r�  )r~   rJ  ru  r˜   r™   r©  )rU   rÍ  r   r…   r.   r8  s   `   @@r   Útest_basic39zTestManyStencils.test_basic39  s·   øøø€ ð	<ð 	<ð 	<õ Œv�b‰zŒz�BœF 1™IœIÑ%ˆð

	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aØ-3°T¨Nð 	$ñ 	<ô 	<ð 	<ð 	<ð 	<r   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } |||d¦  «        }‰                      ‰|||¦  «         dS )z2 args!c                 ó$   — | d         |d         z   S ©Nr   )r   r1   r   r5   s     r   r8  z-TestManyStencils.test_basic40.<locals>.kernel#  ó   € Ø�T”7˜Q˜uœXÑ%Ð%r   c                 ól  •— ‰                      | ||¬¦  «          ‰| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]F}t          d| j        d         ¦  «        D ](}| |dz   |dz   f         ||dz   |dz   f         z   |||f<   Œ)ŒG|S )Nr"   r   rè   r2   r   r1   rÃ  ©	r   r6   r#   rÆ  rÇ  rÈ  rÉ  r8  rU   s	          €€r   rÊ  z/TestManyStencils.test_basic40.<locals>.__kernel(  sÖ   ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Pð P�Ý   A¤G¨A¤JÑ/Ô/ð Pð P�CØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸SÀ1¹WÀcÈBÁhÐ=NÔ;OÑ%O�D˜˜c˜‘N�NðPàˆKr   rT  ry   rÈ   NrË  ©rU   rÍ  r   r6   r…   r8  s   `    @r   Útest_basic40zTestManyStencils.test_basic40!  s    øø€ ð	&ð 	&ð 	&ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q $Ñ'Ô'ˆØ×#Ò# F¨H°a¸Ñ;Ô;Ð;Ð;Ð;r   c                 óö   — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }|                      |||t          t
          g¬¦  «         dS )	z(2 args! rel arrays wildly not same size!c                 ó$   — | d         |d         z   S r¸  r   r5   s     r   r8  z-TestManyStencils.test_basic41.<locals>.kernel8  r¹  r   rT  ry   rÈ   r,   r   rW  N©r~   r˜   r™   r³  r™  rF  ©rU   r8  r   r6   s       r   Útest_basic41zTestManyStencils.test_basic416  ó‡   € ð	&ð 	&ð 	&åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆØ×Ò˜f a¨Å
Ý@Nð@PÐñ 	Qô 	Qð 	Qð 	Qð 	Qr   c                 óö   — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }|                      |||t          t
          g¬¦  «         dS )z%2 args! rel arrays very close in sizec                 ó$   — | d         |d         z   S r¸  r   r5   s     r   r8  z-TestManyStencils.test_basic42.<locals>.kernelA  r¹  r   rT  ry   rÈ   ç      "@rW  NrÀ  rÁ  s       r   Útest_basic42zTestManyStencils.test_basic42?  rÃ  r   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } |||d¦  «        }‰                      ‰|||¦  «         dS )z2 args more complexityc                 óH   — | d         | d         z   |d         z   |d         z   S )Nr   ©r   r2   r/  r   r   r5   s     r   r8  z-TestManyStencils.test_basic43.<locals>.kernelJ  s'   € Ø�T”7˜Q˜tœWÑ$ q¨¤xÑ/°!°E´(Ñ:Ð:r   c                 ó¶  •— ‰                      | ||¬¦  «          ‰| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]k}t          d| j        d         dz
  ¦  «        D ]J}| |dz   |dz   f         | |dz   |dz   f         z   ||dz   |dz   f         z   ||dz   |dz   f         z   |||f<   ŒKŒl|S )Nr"   r   rè   r   r2   r1   r   rÃ  r»  s	          €€r   rÊ  z/TestManyStencils.test_basic43.<locals>.__kernelO  s  ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð <ð <�Ý   A¤G¨A¤J°¡NÑ3Ô3ð <ð <�CØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨a©°°q±Ð(8Ô&9ñ':à&'¨¨b©°#¸±'Ð(9Ô&:ñ';ð '(¨¨a©°°r±Ð(9Ô&:ñ';�D˜˜c˜‘N�Nð<ð
 ˆKr   g      >@r±   é   NrË  r¼  s   `    @r   Útest_basic43zTestManyStencils.test_basic43H  s    øø€ ð	;ð 	;ð 	;ð

	ð 
	ð 
	ð 
	ð 
	ð 
	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q $Ñ'Ô'ˆØ×#Ò# F¨H°a¸Ñ;Ô;Ð;Ð;Ð;r   c                 óö   — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }|                      |||t          t
          g¬¦  «         dS )z!2 args, has assignment before usec                 ó   — d| d<   | d         S )Nr;  r   r   r5   s     r   r8  z-TestManyStencils.test_basic44.<locals>.kernelb  s   € ØˆAˆd‰GØ�T”7ˆNr   rT  ry   rÈ   rW  N©r~   r˜   r™   r³  r™  r   rÁ  s       r   Útest_basic44zTestManyStencils.test_basic44`  s‰   € ð	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ×Ò˜f a¨Å
Ý@Mð@OÐñ 	Pô 	Pð 	Pð 	Pð 	Pr   c                 óö   — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }|                      |||t          t
          g¬¦  «         dS )z02 args, has assignment and then cross dependencyc                 ó.   — d| d<   | d         | d         z   S )Nr;  r   r   r   r5   s     r   r8  z-TestManyStencils.test_basic45.<locals>.kernell  s   € ØˆAˆd‰GØ�T”7˜Q˜tœWÑ$Ð$r   rT  ry   rÈ   rW  NrÐ  rÁ  s       r   Útest_basic45zTestManyStencils.test_basic45j  ó‰   € ð	%ð 	%ð 	%õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ×Ò˜f a¨Å
Ý@Mð@OÐñ 	Pô 	Pð 	Pð 	Pð 	Pr   c                 óö   — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }|                      |||t          t
          g¬¦  «         dS )z#2 args, has cross relidx assignmentc                 ó:   — |d         | d<   | d         | d         z   S )NrÊ  r   r   r   r5   s     r   r8  z-TestManyStencils.test_basic46.<locals>.kernelv  s"   € Ø˜”gˆAˆd‰GØ�T”7˜Q˜tœWÑ$Ð$r   rT  ry   rÈ   rW  NrÐ  rÁ  s       r   Útest_basic46zTestManyStencils.test_basic46t  rÕ  r   c                 óZ  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } ||||d¦  «        }‰                      ‰||||¦  «         dS )z3 argsc                 ó6   — | d         |d         z   |d         z   S )Nr   r   r   r   ©r   r6   r
  s      r   r8  z-TestManyStencils.test_basic47.<locals>.kernel€  s   € Ø�T”7˜Q˜tœWÑ$ q¨¤xÑ/Ð/r   c                 ó˜  •— ‰	                      | |||¬¦  «          ‰| ||¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]Z}t          d| j        d         dz
  ¦  «        D ]9}| |dz   |dz   f         ||dz   |dz   f         z   ||dz   |dz   f         z   |||f<   Œ:Œ[|S rÛ  rÃ  ©
r   r6   r
  r#   rÆ  rÇ  rÈ  rÉ  r8  rU   s
           €€r   rÊ  z/TestManyStencils.test_basic47.<locals>.__kernel†  sø   ø€ Ø×%Ò% a¨¨A¸LÐ%ÑIÔIÐIØ˜  1 a™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð <ð <�Ý   A¤G¨A¤J°¡NÑ3Ô3ð <ð <�CØ&'¨¨a©°°q±Ð(8Ô&9Ø&'¨¨a©°°q±Ð(8Ô&9ñ':à&'¨¨b©°#¸±'Ð(9Ô&:ñ';�D˜˜c˜‘N�Nð<ð ˆKr   rT  ry   rÈ   NrË  ©rU   rÍ  r   r6   r
  r…   r8  s   `     @r   Útest_basic47zTestManyStencils.test_basic47~  sÁ   øø€ ð	0ð 	0ð 	0ð		ð 		ð 		ð 		ð 		ð 		õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q ! TÑ*Ô*ˆØ×#Ò# F¨H°a¸¸AÑ>Ô>Ð>Ð>Ð>r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z22 args, has assignment before use via memory aliasc                 ó6   — | j         }d|d d …d d …f<   | d         S )Nr1  r   )ÚTr	  s     r   r8  z-TestManyStencils.test_basic48.<locals>.kernel›  s'   € Ø”ˆAØˆAˆaˆaˆa���ˆd‰GØ�T”7ˆNr   c                 ój  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]G}t          d| j        d         ¦  «        D ])}| j        }d|d d …d d …f<   | |dz   |dz   f         |||f<   Œ*ŒH|S )Nr"   r   rè   r   r1  )r½  r~   rÄ  r»  rg  r(   râ  )	r   r#   rÆ  rÇ  rÈ  rÉ  r
  r8  rU   s	          €€r   rÊ  z/TestManyStencils.test_basic48.<locals>.__kernel£  sÔ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð 9ð 9�Ý   A¤G¨A¤JÑ/Ô/ð 9ð 9�CØœ�AØ �A�a�a�a˜˜˜�d‘GØ%& s¨Q¡w°°a±Ð'7Ô%8�D˜˜c˜‘N�Nð9ð ˆKr   rT  ry   rÈ   NrË  rÌ  s   `   @r   Útest_basic48zTestManyStencils.test_basic48™  s   øø€ ð	ð 	ð 	ð		ð 		ð 		ð 		ð 		ð 		õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } |||d¦  «        }‰                      ‰|||ddi¬	¦  «         dS )
z#2 args, standard_indexing on secondc                 ó$   — | d         |d         z   S )Nr   r6  r   r5   s     r   r8  z-TestManyStencils.test_basic49.<locals>.kernelµ  r  r   c                 óZ  •— ‰                      | |¬¦  «          ‰| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]>}t          d| j        d         ¦  «        D ] }| |dz   |dz   f         |d         z   |||f<   Œ!Œ?|S )Nr"   r   rè   r   r6  rÃ  r»  s	          €€r   rÊ  z/TestManyStencils.test_basic49.<locals>.__kernelº  sÆ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Cð C�Ý   A¤G¨A¤JÑ/Ô/ð Cð C�CØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸T¼7Ñ%B�D˜˜c˜‘N�NðCàˆKr   rT  ry   rÈ   NrA   r6   r�  rË  r¼  s   `    @r   Útest_basic49zTestManyStencils.test_basic49³  s¼   øø€ ð	%ð 	%ð 	%ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q $Ñ'Ô'ˆØ×#Ò# F¨H°a¸Ø-@À#Ð,Fð 	$ñ 	Hô 	Hð 	Hð 	Hð 	Hr   z&dynamic range checking not implementedc                 ó   — d„ }dS )z2 args, standard_indexing OOBc                 ó$   — | d         |d         z   S )Nr   )r   é   r   r5   s     r   r8  z-TestManyStencils.test_basic50.<locals>.kernelÍ  r¹  r   Nr   ©rU   r8  s     r   Útest_basic50zTestManyStencils.test_basic50Ê  s   € ð	&ð 	&ð 	&ð 	&ð 	&r   c                 ó   — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }|                      |||dddgit          t
          g¬¦  «         d	S )
z$2 args, standard_indexing, no relidxc                 ó$   — | d         |d         z   S ©Nr   )r   r2   r   r5   s     r   r8  z-TestManyStencils.test_basic51.<locals>.kernelÓ  r  r   rT  ry   rÈ   rA   r   r6   r®  Nr\  rÁ  s       r   Útest_basic51zTestManyStencils.test_basic51Ñ  s‘   € ð	%ð 	%ð 	%åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ×Ò˜f a¨Ø':¸SÀ#¸JÐ&GÝ2<½oÐ1Nð 	ñ 	Pô 	Pð 	Pð 	Pð 	Pr   c           	      ób  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } ||||d¦  «        }‰                      ‰||||d	d
i¬¦  «         dS )z(3 args, standard_indexing on middle arg c                 ó6   — | d         |d         z   |d         z   S )Nr   rÊ  r   rÛ  s      r   r8  z-TestManyStencils.test_basic52.<locals>.kernelÝ  s   € Ø�T”7˜Q˜tœWÑ$ q¨¤wÑ.Ð.r   c                 ó†  •— ‰	                      | ||¬¦  «          ‰| ||¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]R}t          d| j        d         dz
  ¦  «        D ]1}| |dz   |dz   f         |d         z   ||dz   |dz   f         z   |||f<   Œ2ŒS|S )Nr"   r   rè   r   r2   r   rÃ  rÝ  s
           €€r   rÊ  z/TestManyStencils.test_basic52.<locals>.__kernelâ  så   ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1 a™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð ;ð ;�Ý   A¤G¨A¤J°¡NÑ3Ô3ð ;ð ;�CØ&'¨¨a©°°q±Ð(8Ô&9¸A¸d¼GÑ&CØ&'¨¨a©°°q±Ð(8Ô&9ñ':�D˜˜c˜‘N�Nð;ð ˆKr   rT  ry   rÈ   r•  r2   NrA   r6   r�  rË  rÞ  s   `     @r   Útest_basic52zTestManyStencils.test_basic52Û  sÝ   øø€ ð	/ð 	/ð 	/ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q ! TÑ*Ô*ˆØ×#Ò# F¨H°a¸¸AØ-@À#Ð,Fð 	$ñ 	Hô 	Hð 	Hð 	Hð 	Hr   c                 ó2  — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }|                      t          t
          t          ¬¦  «        }|                      |||ddi|¬¦  «         d	S )
z92 args, standard_indexing on variable that does not existc                 ó$   — | d         |d         z   S rð  r   r5   s     r   r8  z-TestManyStencils.test_basic53.<locals>.kernelõ  r  r   rT  ry   rÈ   r­  rA   r
  r®  N)r~   r˜   r™   r¹  rd  r™  r³  ©rU   r8  r   r6   rm  s        r   Útest_basic53zTestManyStencils.test_basic53ó  s¨   € ð	%ð 	%ð 	%åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ× Ò ÝÝÝð !ñ ô ˆð 	×Ò˜f a¨Ð5HÈ#Ð4NØ13ð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } |||d¦  «        }‰                      ‰|||ddi¬	¦  «         dS )
z)2 args, standard_indexing, index from varc                 ó,   — d}| d         |d|f         z   S )Nr2   r   r   r   )r   r6   r  s      r   r8  z-TestManyStencils.test_basic54.<locals>.kernel  s   € ØˆAØ�T”7˜Q˜q !˜tœWÑ$Ð$r   c                 ób  •— ‰	                      | |¬¦  «          ‰| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]B}t          d| j        d         ¦  «        D ]$}d}| |dz   |dz   f         |d|f         z   |||f<   Œ%ŒC|S ©Nr"   r   rè   r   r2   rÃ  )
r   r6   r#   rÆ  rÇ  rÈ  rÉ  r  r8  rU   s
           €€r   rÊ  z/TestManyStencils.test_basic54.<locals>.__kernel  sÑ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Cð C�Ý   A¤G¨A¤JÑ/Ô/ð Cð C�CØ�AØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸QÀ¸T¼7Ñ%B�D˜˜c˜‘N�NðCð ˆKr   rT  ry   rÈ   NrA   r6   r�  rË  r¼  s   `    @r   Útest_basic54zTestManyStencils.test_basic54   s¼   øø€ ð	%ð 	%ð 	%ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q $Ñ'Ô'ˆØ×#Ò# F¨H°a¸Ø-@À#Ð,Fð 	$ñ 	Hô 	Hð 	Hð 	Hð 	Hr   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } |||d¦  «        }‰                      ‰|||ddi¬	¦  «         dS )
z62 args, standard_indexing, index from more complex varc                 ó6   — d}d|z
  }| d         |d|f         z   S )Nr   r2   r   r   r   )r   r6   rƒ  r  s       r   r8  z-TestManyStencils.test_basic55.<locals>.kernel  s'   € ØˆAØ�A‘ˆAØ�T”7˜Q˜q !˜tœWÑ$Ð$r   c                 ól  •— ‰
                      | |¬¦  «          ‰	| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]G}t          d| j        d         ¦  «        D ])}d}d|z
  }| |dz   |dz   f         |d|f         z   |||f<   Œ*ŒH|S rý  rÃ  )r   r6   r#   rÆ  rÇ  rÈ  rÉ  rƒ  r  r8  rU   s            €€r   rÊ  z/TestManyStencils.test_basic55.<locals>.__kernel!  sÚ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Cð C�Ý   A¤G¨A¤JÑ/Ô/ð Cð C�CØ�AØ˜A™�AØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸QÀ¸T¼7Ñ%B�D˜˜c˜‘N�NðCð ˆKr   rT  ry   rÈ   NrA   r6   r�  rË  r¼  s   `    @r   Útest_basic55zTestManyStencils.test_basic55  s¼   øø€ ð	%ð 	%ð 	%ð		ð 		ð 		ð 		ð 		ð 		õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q $Ñ'Ô'ˆØ×#Ò# F¨H°a¸Ø-@À#Ð,Fð 	$ñ 	Hô 	Hð 	Hð 	Hð 	Hr   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } |||d¦  «        }‰                      ‰|||ddi¬	¦  «         dS )
z,2 args, standard_indexing, added complexity c                 ón   — d}d}|dd d …f         D ]}||z  }Œd|z
  dz
  }| d         |d|f         z   |z   S )Nr   r   r2   r   r   )r   r6   rƒ  Úaccr·  r  s         r   r8  z-TestManyStencils.test_basic56.<locals>.kernel4  s[   € ØˆAØˆCØ�q˜!˜!˜!�t”Wð ð �Ø�q‘��Ø�A‘˜‘	ˆAØ�T”7˜Q˜q !˜tœWÑ$ sÑ*Ð*r   c                 ó¤  •— ‰                      | |¬¦  «          ‰| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]c}t          d| j        d         ¦  «        D ]E}d}d}|dd d …f         D ]}	||	z  }Œd|z
  dz
  }
| |dz   |dz   f         |d|
f         z   |z   |||f<   ŒFŒd|S rý  rÃ  )r   r6   r#   rÆ  rÇ  rÈ  rÉ  rƒ  r  r·  r  r8  rU   s              €€r   rÊ  z/TestManyStencils.test_basic56.<locals>.__kernel>  s  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Ið I�Ý   A¤G¨A¤JÑ/Ô/ð Ið I�CØ�AØ�CØ  A A A˜vœYð !ð !˜Ø˜q™˜˜Ø˜A™ ™	�AØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸QÀ¸T¼7Ñ%BÀSÑ%H�D˜˜c˜‘N�NðIð ˆKr   rT  ry   rÈ   NrA   r6   r�  rË  r¼  s   `    @r   Útest_basic56zTestManyStencils.test_basic562  s¼   øø€ ð	+ð 	+ð 	+ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q $Ñ'Ô'ˆØ×#Ò# F¨H°a¸Ø-@À#Ð,Fð 	$ñ 	Hô 	Hð 	Hð 	Hð 	Hr   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } |||d¦  «        }‰                      ‰|||ddi¬	¦  «         dS )
z12 args, standard_indexing, split index operation c                 ó4   — |d         }| d         |d         z   S )Nr   r   r   r   rÛ  s      r   r8  z-TestManyStencils.test_basic57.<locals>.kernelT  s   € Ø�!”ˆAØ�T”7˜Q˜qœT‘>Ð!r   c                 ój  •— ‰	                      | |¬¦  «          ‰| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]F}t          d| j        d         ¦  «        D ](}|d         }| |dz   |dz   f         |d         z   |||f<   Œ)ŒG|S rÂ  rÃ  ©
r   r6   r#   rÆ  rÇ  rÈ  rÉ  r
  r8  rU   s
           €€r   rÊ  z/TestManyStencils.test_basic57.<locals>.__kernelZ  sÑ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð @ð @�Ý   A¤G¨A¤JÑ/Ô/ð @ð @�CØ˜!œ�AØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸Q¼4Ñ%?�D˜˜c˜‘N�Nð@ð ˆKr   rT  ry   rÈ   NrA   r6   r�  rË  r¼  s   `    @r   Útest_basic57zTestManyStencils.test_basic57R  ó¼   øø€ ð	"ð 	"ð 	"ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q $Ñ'Ô'ˆØ×#Ò# F¨H°a¸Ø-@À#Ð,Fð 	$ñ 	Hô 	Hð 	Hð 	Hð 	Hr   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } |||d¦  «        }‰                      ‰|||ddi¬	¦  «         dS )
z?2 args, standard_indexing, split index with broadcast mutation c                 ó:   — |d         dz   }| d         |d         z   S )Nr   r   r   r   rÛ  s      r   r8  z-TestManyStencils.test_basic58.<locals>.kernell  s!   € Ø�!”�q‘ˆAØ�T”7˜Q˜qœT‘>Ð!r   c                 óp  •— ‰	                      | |¬¦  «          ‰| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]I}t          d| j        d         ¦  «        D ]+}|d         dz   }| |dz   |dz   f         |d         z   |||f<   Œ,ŒJ|S rÂ  rÃ  r  s
           €€r   rÊ  z/TestManyStencils.test_basic58.<locals>.__kernelr  sÕ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð @ð @�Ý   A¤G¨A¤JÑ/Ô/ð @ð @�CØ˜!œ˜q™�AØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸Q¼4Ñ%?�D˜˜c˜‘N�Nð@ð ˆKr   rT  ry   rÈ   NrA   r6   r�  rË  r¼  s   `    @r   Útest_basic58zTestManyStencils.test_basic58j  r  r   c           
      ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }d} ||||d¦  «        }‰                      ‰||||dd	d
gi¬¦  «         dS )z>3 args, mix of array, relative and standard indexing and constc                 ó*   — | d         |d         z   |z   S ©Nr   ró  r   rÛ  s      r   r8  z-TestManyStencils.test_basic59.<locals>.kernel„  s   € Ø�T”7˜Q˜tœWÑ$ qÑ(Ð(r   c                 ób  •— ‰	                      | |¬¦  «          ‰| ||¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]A}t          d| j        d         ¦  «        D ]#}| |dz   |dz   f         |d         z   |z   |||f<   Œ$ŒB|S )Nr"   r   rè   r   ró  rÃ  rÝ  s
           €€r   rÊ  z/TestManyStencils.test_basic59.<locals>.__kernel‰  sÍ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜  1 a™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Gð G�Ý   A¤G¨A¤JÑ/Ô/ð Gð G�CØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸T¼7Ñ%BÀQÑ%F�D˜˜c˜‘N�NðGàˆKr   rT  ry   rÈ   r1  NrA   r6   r
  r�  rË  rÞ  s   `     @r   Útest_basic59zTestManyStencils.test_basic59‚  sÉ   øø€ ð	)ð 	)ð 	)ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØˆØ�8˜A˜q ! TÑ*Ô*ˆØ×#Ò# F¨H°a¸¸AØ-@À3ÈÀ*Ð,Mð 	$ñ 	Oô 	Oð 	Oð 	Oð 	Or   c           	      ó$  — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }d}|                      t          ¬¦  «        }|                      ||||ddd	gi|¬
¦  «         dS )zP3 args, mix of array, relative and standard indexing,
        tuple pass throughc                 ó6   — | d         |d         z   |d         z   S )Nr   ró  r   r   rÛ  s      r   r8  z-TestManyStencils.test_basic60.<locals>.kernel�  s   € Ø�T”7˜Q˜tœWÑ$ q¨¤tÑ+Ð+r   rT  ry   rÈ   )r1  )rs  rA   r6   r
  r®  N)r~   r˜   r™   r¹  r™  r³  )rU   r8  r   r6   r
  rm  s         r   Útest_basic60zTestManyStencils.test_basic60š  s¤   € ð	,ð 	,ð 	,åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØˆà× Ò ­
Ð Ñ3Ô3ˆØ×Ò˜f a¨¨AØ':¸SÀ#¸JÐ&GØ13ð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r   c                 óî   — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }|                      |||ddit          ¬¦  «         dS )	z"2 args, standard_indexing on firstc                 ó$   — | d         |d         z   S r  r   r5   s     r   r8  z-TestManyStencils.test_basic61.<locals>.kernelª  r  r   rT  ry   rÈ   rA   r   r®  N)r~   r˜   r™   r³  rd  rÁ  s       r   Útest_basic61zTestManyStencils.test_basic61¨  sƒ   € ð	%ð 	%ð 	%åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ×Ò˜f a¨Ø':¸CÐ&@Ý1:ð 	ñ 	<ô 	<ð 	<ð 	<ð 	<r   c           	      ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        } |||d¦  «        }‰                      ‰|||ddd	œ¬
¦  «         dS )z"2 args, standard_indexing and cvalc                 ó$   — | d         |d         z   S r  r   r5   s     r   r8  z-TestManyStencils.test_basic62.<locals>.kernel´  r  r   c                 óZ  •— ‰                      | |¬¦  «          ‰| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]>}t          d| j        d         ¦  «        D ] }| |dz   |dz   f         |d         z   |||f<   Œ!Œ?|S )Nr"   rm  rè   r   r   ró  rÃ  r»  s	          €€r   rÊ  z/TestManyStencils.test_basic62.<locals>.__kernel¹  sÆ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜  1™œˆJÝ”7˜1œ7 Dµ°ZÑ0@Ô0@ÐAÑAÔAˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Cð C�Ý   A¤G¨A¤JÑ/Ô/ð Cð C�CØ%& s¨Q¡w°°a±Ð'7Ô%8¸1¸T¼7Ñ%B�D˜˜c˜‘N�NðCàˆKr   rT  ry   rÈ   Nr6   rm  )rA   r.   r�  rË  r¼  s   `    @r   Útest_basic62zTestManyStencils.test_basic62²  s¿   øø€ ð	%ð 	%ð 	%ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ�8˜A˜q $Ñ'Ô'ˆØ×#Ò# F¨H°a¸ØBEØ58ð-:ð -:ð 	$ñ 	;ô 	;ð 	;ð 	;ð 	;r   c                 ó2  — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }|                      t          t
          t          ¬¦  «        }|                      |||ddi|¬	¦  «         d
S )zQ2 args, standard_indexing applied to relative, should fail,
        non-const idxc                 ó"   — | d|d         f         S )Nr   r   r   r5   s     r   r8  z-TestManyStencils.test_basic63.<locals>.kernelÌ  s   € Ø�Q˜˜$œ�Z”=Ð r   rT  ry   rÈ   r;  r­  rA   r6   r®  Nr¯  rø  s        r   Útest_basic63zTestManyStencils.test_basic63É  s¨   € ð	!ð 	!ð 	!åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�b‰MŒM×!Ò! ! QÑ'Ô'ˆØ× Ò Ý#ÝÝ ð !ñ "ô "ˆð 	×Ò˜f a¨Ð5HÈ#Ð4NØ13ð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r   c                 óª   — d„ }t          j        d¦  «                             dd¦  «        }|                      ||ddit          t
          g¬¦  «         dS )	z!1 arg that uses standard_indexingc                 ó   — | d         S r=   r   r   s    r   r8  z-TestManyStencils.test_basic64.<locals>.kernelÚ  rÀ  r   rT  ry   rÈ   rA   r   r®  Nr\  ©rU   r8  r   s      r   Útest_basic64zTestManyStencils.test_basic64Ø  sn   € ð	ð 	ð 	åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ×Ò˜f aÐ2EÀsÐ1KÝ2<½oÐ1Nð 	ñ 	Pô 	Pð 	Pð 	Pð 	Pr   c                 ó–   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         dS )zbasic induced neighborhood testc                 óL   — d}t          dd¦  «        D ]}|| |         z  }Œ|dz  S ©Nr   éãÿÿÿr   é   r'   ©r   Úcumulr*   s      r   r8  z-TestManyStencils.test_basic65.<locals>.kernelâ  ó7   € ØˆEÝ˜3 ‘]”]ð ð �Ø˜˜1œ‘��Ø˜2‘:Ðr   c                 ó2  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ].}d}t          dd¦  «        D ]}|| ||z            z  }Œ|dz  ||f<   Œ/|S ©Nr"   r   rè   é   r+  r   r,  rÃ  ©	r   r#   rÆ  rÇ  Ú_TestManyStencils__anr.  r*   r8  rU   s	          €€r   rÊ  z/TestManyStencils.test_basic65.<locals>.__kernelê  ó®   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜b !¤'¨!¤*Ñ-Ô-ð )ð )�Ø�Ý˜s A™œð )ð )�AØ˜Q˜t a™xœ[Ñ(�E�EØ# b™j��T�U‘�ØˆKr   ç      N@©)r+  r   r#   r�  Nrˆ  ©rU   rÍ  r   Únhr…   r8  s   `    @r   Útest_basic65zTestManyStencils.test_basic65à  óŽ   øø€ ð	ð 	ð 	ð		ð 		ð 		ð 		ð 		ð 		õ ŒI�c‰NŒNˆØˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó–   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         dS )zbasic const neighborhood testc                 óL   — d}t          dd¦  «        D ]}|| d         z  }Œ|dz  S r*  r'   r-  s      r   r8  z-TestManyStencils.test_basic66.<locals>.kernelþ  r/  r   c                 ó2  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ].}d}t          dd¦  «        D ]}|| |dz            z  }Œ|dz  ||f<   Œ/|S r1  rÃ  r3  s	          €€r   rÊ  z/TestManyStencils.test_basic66.<locals>.__kernel	  r5  r   r6  r7  r#   r�  Nrˆ  r8  s   `    @r   Útest_basic66zTestManyStencils.test_basic66ü  r;  r   c                 ó¾   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         d	S )
z"basic 2d induced neighborhood testc                 óv   — d}t          dd¦  «        D ]"}t          dd¦  «        D ]}|| ||f         z  }ŒŒ#|dz  S ©Nr   r!   r   éöÿÿÿé2   r'   ©r   r.  r*   r¨   s       r   r8  z-TestManyStencils.test_basic67.<locals>.kernel	  óY   € ØˆEÝ˜2˜q‘\”\ð %ð %�Ý˜s A™œð %ð %�AØ˜Q˜q !˜tœWÑ$�E�Eð%à˜FÑ#Ð#r   c           	      ó   •— ‰
                      | |¬¦  «          ‰	| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]e}t          d| j        d         ¦  «        D ]G}d}t          dd¦  «        D ](}t          dd¦  «        D ]}|| ||z   ||z   f         z  }ŒŒ)|d	z  |||f<   ŒHŒf|S ©
Nr"   r   rè   r1  r   r±   r!   rC  rD  rÃ  ©r   r#   rÆ  rÇ  Ú_TestManyStencils__bnr4  r.  r*   r¨   r8  rU   s            €€r   rÊ  z/TestManyStencils.test_basic67.<locals>.__kernel"	  óþ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜b !¤'¨!¤*Ñ-Ô-ð 2ð 2�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 2ð 2�DØ�EÝ" 2 q™\œ\ð ;ð ;˜Ý!& s¨A¡¤ð ;ð ;˜AØ! Q t¨a¡x°¸±Ð'9Ô%:Ñ:˜E˜Eð;à',¨r¡z�D˜˜t˜Ñ$Ð$ð2ð ˆKr   ç      i@r1  é   ©r    ©rC  r   r#   r�  NrË  r8  s   `    @r   Útest_basic67zTestManyStencils.test_basic67	  ó    øø€ ð	$ð 	$ð 	$ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ!ˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 óª   — d„ }t          j        d¦  «                             dd¦  «        }|                      ||ddit          t
          g¬¦  «         dS )	z basic 2d induced 1D neighborhoodc                 óP   — d}t          dd¦  «        D ]}|| d|f         z  }Œ|dz  S )Nr   rC  r   rD  r'   )r   r.  r¨   s      r   r8  z.TestManyStencils.test_basic67b.<locals>.kernel7	  s=   € ØˆEÝ˜3 ‘]”]ð !ð !�Ø˜˜1˜a˜4œÑ ��Ø˜FÑ#Ð#r   rL  r1  rM  r#   )rO  r®  N)r~   r˜   r™   r³  r   r™  r&  s      r   Útest_basic67bzTestManyStencils.test_basic67b5	  sq   € ð	$ð 	$ð 	$õ
 ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ×Ò˜f a°.À+Ð1NÝ2=½zÐ1Jð 	ñ 	Lô 	Lð 	Lð 	Lð 	Lr   c                 ó¾   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         d	S )
z0basic 2d one induced, one cost neighborhood testc                 óv   — d}t          dd¦  «        D ]"}t          dd¦  «        D ]}|| |df         z  }ŒŒ#|dz  S rB  r'   rE  s       r   r8  z-TestManyStencils.test_basic68.<locals>.kernelC	  rF  r   c           	      ó   •— ‰
                      | |¬¦  «          ‰	| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]e}t          d| j        d         ¦  «        D ]G}d}t          dd¦  «        D ](}t          dd¦  «        D ]}|| ||z   |dz   f         z  }ŒŒ)|d	z  |||f<   ŒHŒf|S rH  rÃ  rI  s            €€r   rÊ  z/TestManyStencils.test_basic68.<locals>.__kernelM	  rK  r   rL  r1  rM  rN  r#   r�  NrË  r8  s   `    @r   Útest_basic68zTestManyStencils.test_basic68A	  s    øø€ ð	$ð 	$ð 	$ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ!ˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó¾   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         d	S )
z#basic 2d two cost neighborhood testc                 ór   — d}t          dd¦  «        D ] }t          dd¦  «        D ]}|| d         z  }ŒŒ!|dz  S )Nr   r!   r   rC  r>   rD  r'   rE  s       r   r8  z-TestManyStencils.test_basic69.<locals>.kernelc	  sU   € ØˆEÝ˜2˜q‘\”\ð %ð %�Ý˜s A™œð %ð %�AØ˜Q˜tœWÑ$�E�Eð%à˜FÑ#Ð#r   c           	      ó   •— ‰
                      | |¬¦  «          ‰	| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]e}t          d| j        d         ¦  «        D ]G}d}t          dd¦  «        D ](}t          dd¦  «        D ]}|| |dz   |dz   f         z  }ŒŒ)|d	z  |||f<   ŒHŒf|S rH  rÃ  rI  s            €€r   rÊ  z/TestManyStencils.test_basic69.<locals>.__kernell	  rK  r   rL  r1  rM  rN  r#   r�  NrË  r8  s   `    @r   Útest_basic69zTestManyStencils.test_basic69a	  rQ  r   c                 ó¾   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         d	S )
zneighborhood adding complexityc                 óŠ   — d}d}t          dd¦  «        D ]*}||z   }t          dd¦  «        D ]}|| ||f         |z   z  }ŒŒ+|dz  S )Nr   rT  r!   r   rC  rD  r'   ©r   r.  Úzzr*   r  r¨   s         r   r8  z-TestManyStencils.test_basic70.<locals>.kernel�	  sk   € ØˆEØˆBÝ˜2˜q‘\”\ð )ð )�Ø˜‘F�Ý˜s A™œð )ð )�AØ˜Q˜q !˜tœW q™[Ñ(�E�Eð)à˜FÑ#Ð#r   c           	      ó´  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]o}t          d| j        d         ¦  «        D ]Q}d}d}t          dd¦  «        D ]0}||z   }	t          d	d¦  «        D ]}
|| ||z   ||
z   f         |	z   z  }ŒŒ1|d
z  |||f<   ŒRŒp|S )Nr"   r   rè   r1  r   r±   rT  r!   rC  rD  rÃ  ©r   r#   rÆ  rÇ  rJ  r4  r.  r`  r*   r  r¨   r8  rU   s              €€r   rÊ  z/TestManyStencils.test_basic70.<locals>.__kernelŒ	  s  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜b !¤'¨!¤*Ñ-Ô-ð 2ð 2�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 2ð 2�DØ�EØ�BÝ" 2 q™\œ\ð ?ð ?˜Ø ™F˜Ý!& s¨A¡¤ð ?ð ?˜AØ! Q t¨a¡x°¸±Ð'9Ô%:¸QÑ%>Ñ>˜E˜Eð?à',¨r¡z�D˜˜t˜Ñ$Ð$ð2ð ˆKr   rL  r1  rM  rN  r#   r�  NrË  r8  s   `    @r   Útest_basic70zTestManyStencils.test_basic70	  s    øø€ ð	$ð 	$ð 	$ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ!ˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó–   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         dS )zneighborhood, type changec                 óf   — d}t          dd¦  «        D ]}d}|dk    rd}|| |         |z   z  }Œ|dz  S )Nr   r+  r   ç        éñÿÿÿrC  r,  r'   )r   r.  r*   r·  s       r   r8  z-TestManyStencils.test_basic71.<locals>.kernel£	  sO   € ØˆEÝ˜3 ‘]”]ð "ð "�Ø�Ø�s’7�7Ø�AØ˜˜1œ ™Ñ!��Ø˜2‘:Ðr   c                 óL  •— ‰	                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ];}d}t          dd¦  «        D ]}d}|dk    rd	}|| ||z            |z   z  }Œ|d
z  ||f<   Œ<|S )Nr"   r   rè   r2  r+  r   rf  rg  rC  r,  rÃ  )
r   r#   rÆ  rÇ  r4  r.  r*   r·  r8  rU   s
           €€r   rÊ  z/TestManyStencils.test_basic71.<locals>.__kernel®	  sÅ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜b !¤'¨!¤*Ñ-Ô-ð )ð )�Ø�Ý˜s A™œð -ð -�AØ�AØ˜3’w�wØ ˜Ø˜Q˜t a™xœ[¨1™_Ñ,�E�EØ# b™j��T�U‘�ØˆKr   r6  r7  r#   r�  Nrˆ  r8  s   `    @r   Útest_basic71zTestManyStencils.test_basic71¡	  sŽ   øø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�c‰NŒNˆØˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó–   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         dS )z+neighborhood, narrower range than specifiedc                 óL   — d}t          dd¦  «        D ]}|| |         z  }Œ|dz  S )Nr   éíÿÿÿr;  r,  r'   r-  s      r   r8  z-TestManyStencils.test_basic72.<locals>.kernelÄ	  ó7   € ØˆEÝ˜3 ‘^”^ð ð �Ø˜˜1œ‘��Ø˜2‘:Ðr   c                 ó2  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ].}d}t          dd¦  «        D ]}|| ||z            z  }Œ|dz  ||f<   Œ/|S )Nr"   r   rè   r2  rl  r;  r,  rÃ  r3  s	          €€r   rÊ  z/TestManyStencils.test_basic72.<locals>.__kernelÌ	  ó®   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜b !¤'¨!¤*Ñ-Ô-ð )ð )�Ø�Ý˜s B™œð )ð )�AØ˜Q˜t a™xœ[Ñ(�E�EØ# b™j��T�U‘�ØˆKr   r6  r7  r#   r�  Nrˆ  r8  s   `    @r   Útest_basic72zTestManyStencils.test_basic72Â	  r;  r   c                 ó–   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         dS )zneighborhood, +ve rangec                 óL   — d}t          dd¦  «        D ]}|| |         z  }Œ|dz  S )Nr   r±   é   r,  r'   r-  s      r   r8  z-TestManyStencils.test_basic73.<locals>.kernelß	  s7   € ØˆEÝ˜1˜b‘\”\ð ð �Ø˜˜1œ‘��Ø˜2‘:Ðr   c                 ó8  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ].}d}t          dd¦  «        D ]}|| ||z            z  }Œ|dz  ||f<   Œ/|S )Nr"   r   rè   r1  r±   rs  r,  rÃ  r3  s	          €€r   rÊ  z/TestManyStencils.test_basic73.<locals>.__kernelç	  s²   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤¨b¡Ñ1Ô1ð )ð )�Ø�Ý˜q "™œð )ð )�AØ˜Q˜t a™xœ[Ñ(�E�EØ# b™j��T�U‘�ØˆKr   r6  ))r±   r1  r#   r�  Nrˆ  r8  s   `    @r   Útest_basic73zTestManyStencils.test_basic73Ý	  sŽ   øø€ ð	ð 	ð 	ð		ð 		ð 		ð 		ð 		ð 		õ ŒI�c‰NŒNˆØˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó–   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         dS )zneighborhood, -ve rangec                 óL   — d}t          dd¦  «        D ]}|| |         z  }Œ|dz  S )Nr   rC  r%   r,  r'   r-  s      r   r8  z.TestManyStencils.test_basic73b.<locals>.kernelú	  rm  r   c                 ó2  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ].}d}t          dd¦  «        D ]}|| ||z            z  }Œ|dz  ||f<   Œ/|S )Nr"   r   rè   r1  rC  r%   r,  rÃ  r3  s	          €€r   rÊ  z0TestManyStencils.test_basic73b.<locals>.__kernel
  ro  r   r6  ))rC  r!   r#   r�  Nrˆ  r8  s   `    @r   Útest_basic73bzTestManyStencils.test_basic73bø	  sŽ   øø€ ð	ð 	ð 	ð		ð 		ð 		ð 		ð 		ð 		õ ŒI�c‰NŒNˆØˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó–   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         dS )z!neighborhood, -ve->+ve range spanc                 óL   — d}t          dd¦  «        D ]}|| |         z  }Œ|dz  S )Nr   r!   rs  r,  r'   r-  s      r   r8  z-TestManyStencils.test_basic74.<locals>.kernel
  s7   € ØˆEÝ˜2˜r‘]”]ð ð �Ø˜˜1œ‘��Ø˜2‘:Ðr   c                 ó8  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ].}d}t          dd¦  «        D ]}|| ||z            z  }Œ|dz  ||f<   Œ/|S )	Nr"   r   rè   r±   r1  r!   rs  r,  rÃ  r3  s	          €€r   rÊ  z/TestManyStencils.test_basic74.<locals>.__kernel
  s²   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤¨b¡Ñ1Ô1ð )ð )�Ø�Ý˜r 2™œð )ð )�AØ˜Q˜t a™xœ[Ñ(�E�EØ# b™j��T�U‘�ØˆKr   r6  ))r!   r1  r#   r�  Nrˆ  r8  s   `    @r   Útest_basic74zTestManyStencils.test_basic74
  r;  r   c                 ó–   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         dS )z!neighborhood, -ve->-ve range spanc                 óL   — d}t          dd¦  «        D ]}|| |         z  }Œ|dz  S )Nr   rC  r   r,  r'   r-  s      r   r8  z-TestManyStencils.test_basic75.<locals>.kernel0
  rm  r   c                 ó2  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ].}d}t          dd¦  «        D ]}|| ||z            z  }Œ|dz  ||f<   Œ/|S )Nr"   r   rè   r1  rC  r   r,  rÃ  r3  s	          €€r   rÊ  z/TestManyStencils.test_basic75.<locals>.__kernel9
  ro  r   r6  ))rC  r1   r#   r�  Nrˆ  r8  s   `    @r   Útest_basic75zTestManyStencils.test_basic75.
  sŽ   øø€ ð	ð 	ð 	ð		ð 		ð 		ð 		ð 		ð 		õ ŒI�c‰NŒNˆØˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó¾   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         d	S )
zneighborhood, mixed range spanc                 óŠ   — d}d}t          dd¦  «        D ]*}||z   }t          dd¦  «        D ]}|| ||f         |z   z  }ŒŒ+|dz  S )Nr   rT  r;  rÈ   rD  r'   r_  s         r   r8  z-TestManyStencils.test_basic76.<locals>.kernelL
  sk   € ØˆEØˆBÝ˜2˜q‘\”\ð )ð )�Ø˜‘F�Ý˜r 1™œð )ð )�AØ˜Q˜q !˜tœW q™[Ñ(�E�Eð)à˜FÑ#Ð#r   c           	      óº  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]o}t          d| j        d         ¦  «        D ]Q}d}d}t          dd¦  «        D ]0}||z   }	t          dd¦  «        D ]}
|| ||z   ||
z   f         |	z   z  }ŒŒ1|d	z  |||f<   ŒRŒp|S )
Nr"   r   rè   ry   r   rT  r;  rÈ   rD  rÃ  rb  s              €€r   rÊ  z/TestManyStencils.test_basic76.<locals>.__kernelX
  s  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤¨a¡Ñ0Ô0ð 2ð 2�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 2ð 2�DØ�EØ�BÝ" 2 q™\œ\ð ?ð ?˜Ø ™F˜Ý!& r¨1¡¤ð ?ð ?˜AØ! Q t¨a¡x°¸±Ð'9Ô%:¸QÑ%>Ñ>˜E˜Eð?à',¨r¡z�D˜˜t˜Ñ$Ð$ð2ð ˆKr   rL  r1  rM  ))r;  r   )r;  ry   r#   r�  NrË  r8  s   `    @r   Útest_basic76zTestManyStencils.test_basic76J
  s    øø€ ð	$ð 	$ð 	$ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ!ˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }d} ||||¦  «        }‰                      ‰|||d|i¬¦  «         d	S )
z neighborhood, two args c                 óŒ   — d}t          dd¦  «        D ]-}t          dd¦  «        D ]}|| ||f         |||f         z   z  }ŒŒ.|dz  S ©Nr   r;  r   rÆ  r'   ©r   r6   r.  r*   r¨   s        r   r8  z-TestManyStencils.test_basic77.<locals>.kernelo
  óe   € ØˆEÝ˜2˜q‘\”\ð /ð /�Ý˜r 1™œð /ð /�AØ˜Q˜q !˜tœW q¨¨A¨¤wÑ.Ñ.�E�Eð/à˜B‘<Ðr   c           
      óÆ  •— ‰                      | ||¬¦  «          ‰
| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]v}t          d| j        d         ¦  «        D ]X}d}t          dd¦  «        D ]9}t          dd¦  «        D ]&}	|| ||z   ||	z   f         |||z   ||	z   f         z   z  }Œ'Œ:|dz  |||f<   ŒYŒw|S ©Nr"   r   rè   ry   r   r;  rÆ  rÃ  ©r   r6   r#   rÆ  rÇ  rJ  r4  r.  r*   r¨   r8  rU   s             €€r   rÊ  z/TestManyStencils.test_basic77.<locals>.__kernelx
  s   ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤Ñ,Ô,ð 3ð 3�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 3ð 3�DØ�EÝ" 2 q™\œ\ð =ð =˜Ý!& r¨1¡¤ð =ð =˜AØ! a¨¨q©°$¸±(Ð(:Ô&;Ø&'¨¨q©°$¸±(Ð(:Ô&;ñ'<ñ =˜E˜Eð=ð (-¨s¡{�D˜˜t˜Ñ$Ð$ð3ð ˆKr   rL  r1  rM  ©©r;  r   r�  r#   r�  NrË  ©rU   rÍ  r   r6   r9  r…   r8  s   `     @r   Útest_basic77zTestManyStencils.test_basic77m
  óÅ   øø€ ð	 ð 	 ð 	 ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆÝŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ ˆØ�8˜A˜q "Ñ%Ô%ˆØ×#Ò# F¨H°a¸Ø-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }d} ||||¦  «        }‰                      ‰|||d|i¬¦  «         d	S )
z. neighborhood, two args, -ve range, -ve range c                 óŒ   — d}t          dd¦  «        D ]-}t          dd¦  «        D ]}|| ||f         |||f         z   z  }ŒŒ.|dz  S )Nr   éúÿÿÿr1   éùÿÿÿr   rÆ  r'   r‰  s        r   r8  z-TestManyStencils.test_basic78.<locals>.kernel�
  se   € ØˆEÝ˜2˜r‘]”]ð /ð /�Ý˜r 2™œð /ð /�AØ˜Q˜q !˜tœW q¨¨A¨¤wÑ.Ñ.�E�Eð/à˜B‘<Ðr   c           
      óÆ  •— ‰                      | ||¬¦  «          ‰
| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]v}t          d| j        d         ¦  «        D ]X}d}t          dd¦  «        D ]9}t          d	d
¦  «        D ]&}	|| ||z   ||	z   f         |||z   ||	z   f         z   z  }Œ'Œ:|dz  |||f<   ŒYŒw|S )Nr"   r   rè   r5  r   rÌ  r•  r1   r–  r   rÆ  rÃ  r�  s             €€r   rÊ  z/TestManyStencils.test_basic78.<locals>.__kernel˜
  s   ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤Ñ,Ô,ð 3ð 3�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 3ð 3�DØ�EÝ" 2 r™]œ]ð =ð =˜Ý!& r¨2¡¤ð =ð =˜AØ! a¨¨q©°$¸±(Ð(:Ô&;Ø&'¨¨q©°$¸±(Ð(:Ô&;ñ'<ñ =˜E˜Eð=ð (-¨s¡{�D˜˜t˜Ñ$Ð$ð3ð ˆKr   ç     Àr@rë  rM  )©r•  r;  )r–  r1   r#   r�  NrË  r�  s   `     @r   Útest_basic78zTestManyStencils.test_basic78�
  sÅ   øø€ ð	 ð 	 ð 	 ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆÝŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ"ˆØ�8˜A˜q "Ñ%Ô%ˆØ×#Ò# F¨H°a¸Ø-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             dd¦  «        }d} ||||¦  «        }‰                      ‰|||d|i¬¦  «         d	S )
z. neighborhood, two args, -ve range, +ve range c                 óŒ   — d}t          dd¦  «        D ]-}t          dd¦  «        D ]}|| ||f         |||f         z   z  }ŒŒ.|dz  S )Nr   r•  r1   r2   r1  rÆ  r'   r‰  s        r   r8  z.TestManyStencils.test_basic78b.<locals>.kernel¯
  se   € ØˆEÝ˜2˜r‘]”]ð /ð /�Ý˜q "™œð /ð /�AØ˜Q˜q !˜tœW q¨¨A¨¤wÑ.Ñ.�E�Eð/à˜B‘<Ðr   c           
      óÌ  •— ‰                      | ||¬¦  «          ‰
| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]v}t          d| j        d         ¦  «        D ]X}d}t          dd¦  «        D ]9}t          d	d
¦  «        D ]&}	|| ||z   ||	z   f         |||z   ||	z   f         z   z  }Œ'Œ:|dz  |||f<   ŒYŒw|S )Nr"   r   rè   r   é	   rÌ  r•  r1   r2   r1  rÆ  rÃ  r�  s             €€r   rÊ  z0TestManyStencils.test_basic78b.<locals>.__kernel¸
  s$  ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤¨a¡Ñ0Ô0ð 3ð 3�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 3ð 3�DØ�EÝ" 2 r™]œ]ð =ð =˜Ý!& q¨"¡¤ð =ð =˜AØ! a¨¨q©°$¸±(Ð(:Ô&;Ø&'¨¨q©°$¸±(Ð(:Ô&;ñ'<ñ =˜E˜Eð=ð (-¨s¡{�D˜˜t˜Ñ$Ð$ð3ð ˆKr   r˜  rë  rM  )r™  )r2   rž  r#   r�  NrË  r�  s   `     @r   Útest_basic78bzTestManyStencils.test_basic78b­
  r’  r   c                 ó4  — d„ }t          j        d¦  «                             dd¦  «        }t          j        d¦  «                             ddd¦  «        }|                      t          t          t          ¬¦  «        }|                      |||ddi|¬	¦  «         d
S )z% neighborhood, two incompatible args c                 óŒ   — d}t          dd¦  «        D ]-}t          dd¦  «        D ]}|| ||f         |||f         z   z  }ŒŒ.|dz  S rˆ  r'   r‰  s        r   r8  z-TestManyStencils.test_basic79.<locals>.kernelÏ
  rŠ  r   rL  r1  rM  r2   r­  r#   rŽ  r®  N)r~   r˜   r™   r¹  r   r³  rø  s        r   Útest_basic79zTestManyStencils.test_basic79Í
  s³   € ð	 ð 	 ð 	 õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆÝŒI�iÑ Ô ×(Ò(¨¨R°Ñ3Ô3ˆØ× Ò ÝÝÝð !ñ ô ˆð 	×Ò˜f a¨°^Ø5Hð5Jà13ð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r   c                 óÆ   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }d}d} ||||¦  «        }‰                      ‰|||d|i¬	¦  «         d
S )z neighborhood, type change c                 ó|   — d}t          dd¦  «        D ]%}t          dd¦  «        D ]}|| ||f         |z   z  }ŒŒ&|dz  S rˆ  r'   r‰  s        r   r8  z-TestManyStencils.test_basic80.<locals>.kernelá
  s\   € ØˆEÝ˜2˜q‘\”\ð )ð )�Ý˜r 1™œð )ð )�AØ˜Q˜q !˜tœW q™[Ñ(�E�Eð)à˜B‘<Ðr   c           	      óª  •— ‰                      | ||¬¦  «          ‰
| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]h}t          d| j        d         ¦  «        D ]J}d}t          dd¦  «        D ]+}t          dd¦  «        D ]}	|| ||z   ||	z   f         |z   z  }ŒŒ,|dz  |||f<   ŒKŒi|S rŒ  rÃ  r�  s             €€r   rÊ  z/TestManyStencils.test_basic80.<locals>.__kernelê
  s  ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤Ñ,Ô,ð 3ð 3�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 3ð 3�DØ�EÝ" 2 q™\œ\ð ?ð ?˜Ý!& r¨1¡¤ð ?ð ?˜AØ! Q t¨a¡x°¸±Ð'9Ô%:¸QÑ%>Ñ>˜E˜Eð?à',¨s¡{�D˜˜t˜Ñ$Ð$ð3ð ˆKr   rL  r1  rM  y              (@rŽ  r#   r�  NrË  r�  s   `     @r   Útest_basic80zTestManyStencils.test_basic80ß
  s«   øø€ ð	 ð 	 ð 	 ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØˆØˆØ�8˜A˜q "Ñ%Ô%ˆØ×#Ò# F¨H°a¸Ø-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó  — d„ }t          j        d¦  «                             dd¦  «        }|d                              ¦   «         }|                      t
          t          t
          ¬¦  «        }|                      |||ddi|¬	¦  «         d
S )z1 neighborhood, dimensionally incompatible arrays c                 óˆ   — d}t          dd¦  «        D ]+}t          dd¦  «        D ]}|| ||f         ||         z   z  }ŒŒ,|dz  S rˆ  r'   r‰  s        r   r8  z-TestManyStencils.test_basic81.<locals>.kernel   s`   € ØˆEÝ˜2˜q‘\”\ð ,ð ,�Ý˜r 1™œð ,ð ,�AØ˜Q˜q !˜tœW q¨¤t™^Ñ+�E�Eð,à˜B‘<Ðr   rL  r1  rM  r   r­  r#   rŽ  r®  N)r~   r˜   r™   Úcopyr¹  r   rF  r³  rø  s        r   Útest_basic81zTestManyStencils.test_basic81þ
  s¡   € ð	 ð 	 ð 	 õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØˆaŒD�IŠI‰KŒKˆØ× Ò ÝÝ!Ýð !ñ ô ˆð 	×Ò˜f a¨Ø'5Ð7IÐ&JØ13ð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r   c           	      óì   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }|                     ¦   «         }d} ||||¦  «        }‰                      ‰||||ddœ¬	¦  «         d
S )z% neighborhood, with standard_indexingc                 óˆ   — d}t          dd¦  «        D ]+}t          dd¦  «        D ]}|| ||f         |d         z   z  }ŒŒ,|dz  S ©Nr   r;  r   ©r   ry   rÆ  r'   r‰  s        r   r8  z-TestManyStencils.test_basic82.<locals>.kernel  óa   € ØˆEÝ˜2˜q‘\”\ð /ð /�Ý˜r 1™œð /ð /�AØ˜Q˜q !˜tœW q¨¤wÑ.Ñ.�E�Eð/à˜B‘<Ðr   c           	      ó¶  •— ‰                      | ||¬¦  «          ‰
| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]n}t          d| j        d         ¦  «        D ]P}d}t          dd¦  «        D ]1}t          dd¦  «        D ]}	|| ||z   ||	z   f         |d         z   z  }ŒŒ2|dz  |||f<   ŒQŒo|S )	Nr"   r   rè   ry   r   r;  r®  rÆ  rÃ  r�  s             €€r   rÊ  z/TestManyStencils.test_basic82.<locals>.__kernel  s  ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤Ñ,Ô,ð 3ð 3�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 3ð 3�DØ�EÝ" 2 q™\œ\ð Eð E˜Ý!& r¨1¡¤ð Eð E˜AØ! Q t¨a¡x°¸±Ð'9Ô%:¸Q¸t¼WÑ%DÑD˜E˜EðEà',¨s¡{�D˜˜t˜Ñ$Ð$ð3ð ˆKr   rL  r1  rM  rŽ  r6   )r#   rA   r�  N©r~   r˜   r™   r©  r©  r�  s   `     @r   Útest_basic82zTestManyStencils.test_basic82  s½   øø€ ð	 ð 	 ð 	 ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ�FŠF‰HŒHˆØˆØ�8˜A˜q "Ñ%Ô%ˆØ×#Ò# F¨H°a¸Ø=?ØBEð-Gð -Gð 	$ñ 	Hô 	Hð 	Hð 	Hð 	Hr   c           
      óf  ‡ ‡— d„ Št          j        d¦  «                             dd¦  «        }|                     ¦   «         }ˆˆ fd„}t          j        d¦  «                             dd¦  «        }|                     ¦   «         }d} ||||¦  «        }‰                      ‰||||ddd	œ¬
¦  «         dS )z. neighborhood, with standard_indexing and cvalc                 óˆ   — d}t          dd¦  «        D ]+}t          dd¦  «        D ]}|| ||f         |d         z   z  }ŒŒ,|dz  S r­  r'   r‰  s        r   r8  z-TestManyStencils.test_basic83.<locals>.kernel2  r¯  r   rL  r1  rM  c           	      ó¶  •— ‰                      | ||¬¦  «          ‰
| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]n}t          d| j        d         ¦  «        D ]P}d}t          dd¦  «        D ]1}t          dd¦  «        D ]}	|| ||z   ||	z   f         |d         z   z  }ŒŒ2|d	z  |||f<   ŒQŒo|S )
Nr"   ç      ø?rè   ry   r   r   r;  r®  rÆ  rÃ  r�  s             €€r   rÊ  z/TestManyStencils.test_basic83.<locals>.__kernel>  s  ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1™œˆJÝ”7˜1œ7 C­t°JÑ/?Ô/?Ð@Ñ@Ô@ˆDÝ˜a ¤¨¤Ñ,Ô,ð 3ð 3�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 3ð 3�DØ�EÝ" 2 q™\œ\ð Eð E˜Ý!& r¨1¡¤ð Eð E˜AØ! Q t¨a¡x°¸±Ð'9Ô%:¸Q¸t¼WÑ%DÑD˜E˜EðEà',¨s¡{�D˜˜t˜Ñ$Ð$ð3ð ˆKr   rŽ  r6   r¶  ©r#   rA   r.   r�  Nr±  )rU   r   r6   rÍ  r9  r…   r8  s   `     @r   Útest_basic83zTestManyStencils.test_basic830  sç   øø€ ð	 ð 	 ð 	 õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ�FŠF‰HŒHˆð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ�FŠF‰HŒHˆØˆØ�8˜A˜q "Ñ%Ô%ˆØ×#Ò# F¨H°a¸Ø=?ØBEØ58ð-;ð -;ð 	$ñ 	<ô 	<ð 	<ð 	<ð 	<r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z kernel calls njit c                 ó>   — | d         t          | d         ¦  «        z   S ©Nr>   r   )rH   r   s    r   r8  z-TestManyStencils.test_basic84.<locals>.kernelV  ó   € Ø�T”7�[¨¨4¬Ñ1Ô1Ñ1Ð1r   c           	      ó˜  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]^}t          d| j        d         ¦  «        D ]@}| |dz   |dz   f         t                               | |dz   |dz   f         ¦  «        z   |||f<   ŒAŒ_|S rÂ  )r½  r~   rÄ  r»  rg  r(   rH   Úpy_funcrÅ  s         €€r   rÊ  z/TestManyStencils.test_basic84.<locals>.__kernel[  óæ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð Pð P�Ý   A¤G¨A¤JÑ/Ô/ð Pð P�CØ&'¨¨a©°°q±Ð(8Ô&9Ý&1×&9Ò&9¸!¸CÀ!¹GÀSÈ1ÁWÐ<LÔ:MÑ&NÔ&Nñ'O�D˜˜c˜‘N�NðPð ˆKr   rL  r1  rM  NrË  rÌ  s   `   @r   Útest_basic84zTestManyStencils.test_basic84T  s�   øø€ ð	2ð 	2ð 	2ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z! kernel calls njit(parallel=True)c                 ó>   — | d         t          | d         ¦  «        z   S r»  )rL   r   s    r   r8  z-TestManyStencils.test_basic85.<locals>.kernelk  r¼  r   c           	      ó˜  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]^}t          d| j        d         ¦  «        D ]@}| |dz   |dz   f         t                               | |dz   |dz   f         ¦  «        z   |||f<   ŒAŒ_|S rÂ  )r½  r~   rÄ  r»  rg  r(   rL   r¾  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic85.<locals>.__kernelq  r¿  r   rL  r1  rM  NrË  rÌ  s   `   @r   Útest_basic85zTestManyStencils.test_basic85i  s�   øø€ ð	2ð 	2ð 	2ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 óª   — d„ }t          j        d¦  «                             dd¦  «        }|                      ||ddit          t
          g¬¦  «         dS )z bad kwarg c                 ó   — | d         S r=   r   r   s    r   r8  z-TestManyStencils.test_basic86.<locals>.kernel‚  rÀ  r   rL  r1  rM  Úbadr®  N)r~   r˜   r™   r³  r™  r   r&  s      r   Útest_basic86zTestManyStencils.test_basic86€  sp   € ð	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ×Ò˜f a°%¸°Ý2<½kÐ1Jð 	ñ 	Lô 	Lð 	Lð 	Lð 	Lr   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z reserved arg name in use c                 ó   — | d         S r=   r   )Ú__sentinel__s    r   r8  z-TestManyStencils.test_basic87.<locals>.kernel‹  s   € Ø Ô%Ð%r   c                 ó@  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]5}t          d| j        d         ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ6|S rÂ  rÃ  )rË  r#   rÆ  rÇ  rÈ  rÉ  r8  rU   s         €€r   rÊ  z/TestManyStencils.test_basic87.<locals>.__kernel�  s¾   ø€ Ø×%Ò% lÀÐ%ÑNÔNÐNØ˜ Ñ-Ô-ˆJÝ”7˜<Ô-¨q½¸ZÑ8HÔ8HÐIÑIÔIˆDÝ˜Q Ô 2°1Ô 5Ñ6Ô6ð Dð D�Ý   LÔ$6°qÔ$9Ñ:Ô:ð Dð D�CØ%1°#¸±'¸3À¹7Ð2BÔ%C�D˜˜c˜‘N�NðDàˆKr   rL  r1  rM  NrË  rÌ  s   `   @r   Útest_basic87zTestManyStencils.test_basic87‰  s�   øø€ ð	&ð 	&ð 	&ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 óÞ   — d„ }t          j        d¦  «                             dd¦  «        }|                      t          t
          t          ¬¦  «        }|                      ||di |¬¦  «         dS )	z use of reserved word c                 ó   — || d         z  S rÒ  r   )r   r—   s     r   r8  z-TestManyStencils.test_basic88.<locals>.kernelŸ  s   € Ø˜˜4œ‘=Ð r   rT  ry   rÈ   r­  r,   r®  Nr¯  r°  s       r   Útest_basic88zTestManyStencils.test_basic88�  sx   € ð	!ð 	!ð 	!åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØ× Ò Ý#ÝÝ ð !ñ "ô "ˆð 	×Ò˜f a¨°bÈRÐÑPÔPÐPÐPÐPr   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z basic multiple returnc                 óJ   — | d         dk    rdS | d         dk     r| d         S dS )Nr   r1  rm  r6  rc  r>   rÓ   r   r   s    r   r8  z-TestManyStencils.test_basic89.<locals>.kernelª  s/   € Ø�Œw˜Š|ˆ|Ø�sØ�4”˜1’�Ø˜”w�à�rr   c                 ó¶  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]m}t          d| j        d         ¦  «        D ]O}| |dz   |dz   f         dk    rd|||f<   Œ| |dz   |dz   f         dk     r| |dz   |dz   f         |||f<   ŒHd	|||f<   ŒPŒn|S )
Nr"   r   rè   r   ry   r1  rm  rc  rÓ   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic89.<locals>.__kernel´  s  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð -ð -�Ý   A¤G¨A¤JÑ/Ô/ð -ð -�CØ˜˜q™ #¨¡'Ð)Ô*¨RÒ/Ð/Ø)-˜˜S #˜X™˜Ø˜3 ™7 C¨!¡GÐ+Ô,¨qÒ0Ð0Ø)*¨3°©7°C¸!±GÐ+;Ô)<˜˜S #˜X™˜à),˜˜S #˜X™˜ð-ð ˆKr   rL  r1  rM  NrË  rÌ  s   `   @r   Útest_basic89zTestManyStencils.test_basic89¨  s�   øø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c           
      óî   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        }|                     ¦   «         }d} ||||¦  «        }‰                      ‰||||ddd	œ¬
¦  «         dS )z@ neighborhood, with standard_indexing and cval, multiple returnsc                 ó¢   — d}t          dd¦  «        D ]+}t          dd¦  «        D ]}|| ||f         |d         z   z  }ŒŒ,|dz  }|dk    r|dz   S |S )Nr   r;  r   r®  rÆ  rL  r,   r'   )r   r6   r.  r*   r¨   Úress         r   r8  z-TestManyStencils.test_basic90.<locals>.kernelÈ  sx   € ØˆEÝ˜2˜q‘\”\ð /ð /�Ý˜r 1™œð /ð /�AØ˜Q˜q !˜tœW q¨¤wÑ.Ñ.�E�Eð/à˜2‘,ˆCØ�UŠ{ˆ{Ø˜S‘yÐ à�
r   c           	      óÜ  •— ‰                      | ||¬¦  «          ‰| |¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]�}t          d| j        d         ¦  «        D ]c}d}t          dd¦  «        D ]1}t          dd¦  «        D ]}	|| ||z   ||	z   f         |d         z   z  }ŒŒ2|d	z  }
|
d
k    r|
dz   |||f<   Œ\|
|||f<   ŒdŒ‚|S )Nr"   r¶  rè   ry   r   r   r;  r®  rÆ  rL  r,   rÃ  )r   r6   r#   rÆ  rÇ  rJ  r4  r.  r*   r¨   r×  r8  rU   s              €€r   rÊ  z/TestManyStencils.test_basic90.<locals>.__kernelÕ  s3  ø€ Ø×%Ò% a¨¸Ð%ÑFÔFÐFØ˜  1™œˆJÝ”7˜1œ7 C­t°JÑ/?Ô/?Ð@Ñ@Ô@ˆDÝ˜a ¤¨¤Ñ,Ô,ð 
/ð 
/�Ý! ! Q¤W¨Q¤ZÑ0Ô0ð 	/ð 	/�DØ�EÝ" 2 q™\œ\ð Eð E˜Ý!& r¨1¡¤ð Eð E˜AØ! Q t¨a¡x°¸±Ð'9Ô%:¸Q¸t¼WÑ%DÑD˜E˜EðEà #™+�CØ˜U’{�{Ø+.°©9˜˜T 4˜ZÑ(Ð(à+.˜˜T 4˜ZÑ(Ð(ð	/ð ˆKr   rL  r1  rM  rŽ  r6   r¶  r·  r�  Nr±  r�  s   `     @r   Útest_basic90zTestManyStencils.test_basic90Æ  s¹   øø€ ð		ð 		ð 		ð	ð 	ð 	ð 	ð 	ð 	õ" ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ�FŠF‰HŒHˆØˆØ�8˜A˜q "Ñ%Ô%ˆØ×#Ò# F¨H°a¸Ø=?ØBEØ58ð-;ð -;ð 	$ñ 	<ô 	<ð 	<ð 	<ð 	<r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )z? Issue #3454, const(int) == const(int) evaluating incorrectly. c                 ó,   — d}ddk    rd}| d         |z   S )Nr   r2   r>   r   r5   s     r   r8  z-TestManyStencils.test_basic91.<locals>.kernelñ  s#   € ØˆAØ�Q’�Ø�Ø�T”7˜Q‘;Ðr   c                 óZ  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         ¦  «        D ]B}t          d| j        d         ¦  «        D ]$}d}ddk    rd}| |dz   |dz   f         |z   |||f<   Œ%ŒC|S rý  rÃ  )	r   r#   rÆ  rÇ  rÈ  rÉ  r6   r8  rU   s	          €€r   rÊ  z/TestManyStencils.test_basic91.<locals>.__kernelù  sÌ   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
Ñ+Ô+ð =ð =�Ý   A¤G¨A¤JÑ/Ô/ð =ð =�CØ�AØ˜A’v�vØ˜Ø%& s¨Q¡w°°a±Ð'7Ô%8¸1Ñ%<�D˜˜c˜‘N�Nð	=ð
 ˆKr   rL  r1  rM  NrË  rÌ  s   `   @r   Útest_basic91zTestManyStencils.test_basic91ï  s�   øø€ ð	ð 	ð 	ð
	ð 
	ð 
	ð 
	ð 
	ð 
	õ ŒI�iÑ Ô ×(Ò(¨¨RÑ0Ô0ˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        t          j        d¦  «        dz  ¦  «                             dd¦  «                             t           j        ¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )ú7 Issue #3497, bool return type evaluating incorrectly. c                 ó¢   — | d         | d         z  | d         z  | d         z  | d         z  | d         z  | d         z  | d         z  | d	         z  S ©
Nrø  r   rè  r   r>   r   rî  r   ró  r   r   s    r   r8  z-TestManyStencils.test_basic92.<locals>.kernel  óh   € Ø�f”I  %¤Ñ(¨1¨U¬8Ñ3Ø�e”HñØ  œwñ'Ø)*¨4¬ñ1à�e”Hñà  œwñ'à)*¨4¬ñ1ð 2r   c                 ó\  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]À}t          d| j        d         dz
  ¦  «        D ]Ÿ}| |dz   |dz   f         | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  |||f<   Œ ŒÁ|S rÛ  rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic92.<locals>.__kernel  ó˜  ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð 
;ð 
;�Ý   A¤G¨A¤J°¡NÑ3Ô3ð 	;ð 	;�CØ&'¨¨b©°#¸±(Ð(:Ô&;Ø&'¨¨b©°#¸±'Ð(9Ô&:ñ';à&'¨¨b©°#¸±'Ð(9Ô&:ñ';ð '(¨¨a©°°r±Ð(9Ô&:ñ';ð '(¨¨a©°°q±Ð(8Ô&9ñ	':ð
 '(¨¨a©°°q±Ð(8Ô&9ñ':ð '(¨¨a©°°r±Ð(9Ô&:ñ';ð '(¨¨a©°°q±Ð(8Ô&9ñ':ð '(¨¨a©°°q±Ð(8Ô&9ñ':�D˜˜c˜‘N�Nð	;ð ˆKr   rM  r2   rÈ   r±   N©r~   r�  r˜   r™   rp  rë   r©  ©rU   rÍ  r�   r…   r8  s   `   @r   Útest_basic92zTestManyStencils.test_basic92	  sž   øø€ ð	2ð 	2ð 	2ð	ð 	ð 	ð 	ð 	ð 	õ" ŒH•R”Y˜r‘]”] QÑ&Ñ'Ô'×/Ò/°°1Ñ5Ô5×<Ò<½R¼XÑFÔFˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÑ8Ô8Ð8Ð8Ð8r   c                 ó  ‡ ‡— d„ Šˆˆ fd„}t          j        t          j        d¦  «        dz  ¦  «                             dd¦  «                             t           j        ¦  «        } ||d¦  «        }‰                      ‰||dd	i¬
¦  «         dS )rß  c                 ó¢   — | d         | d         z  | d         z  | d         z  | d         z  | d         z  | d         z  | d         z  | d	         z  S rá  r   r   s    r   r8  z-TestManyStencils.test_basic93.<locals>.kernel*  râ  r   c                 ó\  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]À}t          d| j        d         dz
  ¦  «        D ]Ÿ}| |dz   |dz   f         | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  | |dz   |dz   f         z  |||f<   Œ ŒÁ|S )Nr"   r   rè   r   r   rÃ  rÅ  s         €€r   rÊ  z/TestManyStencils.test_basic93.<locals>.__kernel1  rä  r   rM  r2   rÈ   r±   Nr.   Tr�  rå  ræ  s   `   @r   Útest_basic93zTestManyStencils.test_basic93(  s§   øø€ ð	2ð 	2ð 	2ð	ð 	ð 	ð 	ð 	ð 	õ" ŒH•R”Y˜r‘]”] QÑ&Ñ'Ô'×/Ò/°°1Ñ5Ô5×<Ò<½R¼XÑFÔFˆØ�8˜A˜tÑ$Ô$ˆØ×#Ò# F¨H°aÀ&È$ÀÐ#ÑPÔPÐPÐPÐPr   c                 óÖ   ‡ ‡— d„ Šˆˆ fd„}t          j        dt           j        ¬¦  «                             dd¦  «        }d} |||¦  «        }‰                      ‰||d|i¬	¦  «         d
S )z" Issue #3528. Support for slices. c                 óB   — t          j        | dd…dd…f         ¦  «        S ©Nr   r2   ©r~   Úmedianr   s    r   r8  z-TestManyStencils.test_basic94.<locals>.kernelH  ó"   € Ý”9˜Q˜r !˜t R¨ T˜zœ]Ñ+Ô+Ð+r   c           	      ó„  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]T}t          d| j        d         dz
  ¦  «        D ]3}t          j        | |dz   |dz   …|dz   |dz   …f         ¦  «        |||f<   Œ4ŒU|S ©Nr"   r   rè   r   r   r2   ©r½  r~   rÄ  r»  rg  r(   rð  )r   r#   rÆ  rÇ  rJ  r4  r8  rU   s         €€r   rÊ  z/TestManyStencils.test_basic94.<locals>.__kernelM  sì   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤¨a¡Ñ0Ô0ð Hð H�Ý! ! Q¤W¨Q¤Z°!¡^Ñ4Ô4ð Hð H�DÝ')¤y°°4¸"±9¸TÀA¹XÐ3EØ37¸"±9¸TÀA¹XÐ3Eð4Fô 2Gñ (Hô (H�D˜˜t˜Ñ$Ð$ðHð ˆKr   rM  rè   rÈ   r±   ©rè  rè  r#   r�  N)r~   r˜   Úuint32r™   r©  r8  s   `    @r   Útest_basic94zTestManyStencils.test_basic94F  s§   øø€ ð	,ð 	,ð 	,ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�b¥¤	Ð*Ñ*Ô*×2Ò2°1°aÑ8Ô8ˆØ ˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   znot yet supportedc                 ó   — d„ }dS )z  Slice, calculate neighborhood. c                 óB   — t          j        | dd…dd…f         ¦  «        S )Nr   r2   r;  rÈ   rï  r   s    r   r8  z-TestManyStencils.test_basic95.<locals>.kernel`  rñ  r   Nr   rì  s     r   Útest_basic95zTestManyStencils.test_basic95]  s   € ð	,ð 	,ð 	,ð 	,ð 	,r   c                 ó®   ‡ ‡— d„ Šˆˆ fd„}t          j        dt           j        ¬¦  «        }d} |||¦  «        }‰                      ‰||d|i¬¦  «         dS )	z 1D slice. c                 ó:   — t          j        | dd…         ¦  «        S rî  rï  r   s    r   r8  z-TestManyStencils.test_basic96.<locals>.kernelf  s   € Ý”9˜Q˜r !˜tœWÑ%Ô%Ð%r   c                 ó,  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        dt	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ](}t          j        | |dz   |dz   …         ¦  «        ||f<   Œ)|S ró  rô  )r   r#   rÆ  rÇ  r4  r8  rU   s        €€r   rÊ  z/TestManyStencils.test_basic96.<locals>.__kernelk  sš   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤¨a¡Ñ0Ô0ð ?ð ?�Ý œi¨¨$°©)°D¸1±HÐ*<Ô(=Ñ>Ô>��T�U‘�ØˆKr   rM  rè   )rè  r#   r�  N)r~   r˜   rö  r©  r8  s   `    @r   Útest_basic96zTestManyStencils.test_basic96d  s—   øø€ ð	&ð 	&ð 	&ð
	ð 	ð 	ð 	ð 	ð 	õ ŒI�b¥¤	Ð*Ñ*Ô*ˆØˆØ�8˜A˜r‘?”?ˆØ×#Ò# F¨H°aØ-;¸RÐ,@ð 	$ñ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó   — d„ }dS )z 2D slice and index. c                 ó>   — t          j        | dd…df         ¦  «        S )Nr   r2   ry   rï  r   s    r   r8  z-TestManyStencils.test_basic97.<locals>.kernel|  s   € Ý”9˜Q˜r !˜t Q˜wœZÑ(Ô(Ð(r   Nr   rì  s     r   Útest_basic97zTestManyStencils.test_basic97y  s   € ð	)ð 	)ð 	)ð 	)ð 	)r   c           	      óJ  ‡ ‡‡— t           j        t           j        t           j         t          d¦  «        t          d¦  «         fD ]]Šd„ Šˆˆˆ fd„}t          j        d¦  «                             d¦  «        }d} |||¦  «        }‰                      ‰|||‰dœ¬¦  «         Œ^d	S )
rP  rQ  c                 ó   — | d         S r=   r   r   s    r   r8  z-TestManyStencils.test_basic98.<locals>.kernel„  s   € Ø˜”w�r   c                 óL  •— ‰                      | |¬¦  «          ‰| ¦  «        }t          j        | j        ‰t	          |¦  «        ¬¦  «        }t          d| j        d         dz
  ¦  «        D ]8}t          d| j        d         dz
  ¦  «        D ]}| |dz   |dz   f         |||f<   ŒŒ9|S )Nr"   rè   r   r   rÃ  )	r   r#   rÆ  rÇ  rJ  r4  r.   r8  rU   s	         €€€r   rÊ  z/TestManyStencils.test_basic98.<locals>.__kernel‰  sÁ   ø€ Ø×)Ò)¨!¸,Ð)ÑGÔGÐGØ#˜V A™YœY�
Ý”w˜qœw¨µD¸Ñ4DÔ4DÐEÑEÔE�Ý! ! Q¤W¨Q¤Z°!¡^Ñ4Ô4ð Að A�DÝ % a¨¬°¬°a©Ñ 8Ô 8ð Að A˜Ø+,¨T°A©X°t¸a±xÐ-?Ô+@˜˜T 4˜ZÑ(Ð(ðAà�r   g      @)r2   ry   rõ  )r#   r.   r�  N)r~   rU  rQ  rV  r˜   r™   r©  )rU   rÍ  r   r9  r…   r.   r8  s   `    @@r   Útest_basic98zTestManyStencils.test_basic98€  sÜ   øøø€ õ ”V�RœV¥b¤f W­e°E©l¬l½UÀ5¹\¼\¸MÐJð 	?ð 	?ˆDðð ð ð
ð ð ð ð ð ð õ ”	˜"‘”×%Ò% fÑ-Ô-ˆAØ$ˆBØ�x  2‘”ˆHØ×'Ò'¨°¸!ØACØ8<ð1>ð 1>ð (ñ ?ô ?ð ?ð ?ð'	?ð 	?r   )trŠ   r‹   rŒ   rT   r©  r³  r¹  r½  rÎ  rÕ  rÜ  rá  rå  rë  rð  rõ  rü  r   r  r	  r  r  r  r  r&  r+  r2  r8  r=  rA  rE  rP  rT  rY  r]  rd  rj  rr  rw  r{  r€  ÚunittestÚskipr„  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?  rP  rT  rX  r\  rc  ri  rp  ru  ry  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�   s   @r   rZ  rZ  ‚  s¥  ø€ € € € € ð@ð @ð @ð @ð @ðX,ð X,ð X,ðtd,ð d,ð d,ðLð ð ð	Lð 	Lð 	Lð9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð*9ð 9ð 9ð*9ð 9ð 9ð*9ð 9ð 9ð*9ð 9ð 9ð*9ð 9ð 9ð.9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð,9ð 9ð 9ð09ð 9ð 9ð.Lð Lð LðPð Pð Pð9ð 9ð 9ð29ð 9ð 9ð89ð 9ð 9ð,Mð Mð Mð9ð 9ð 9ð*9ð 9ð 9ð, €X„]Ð5Ñ6Ô6ðð ñ 7Ô6ðð9ð 9ð 9ð*Mð Mð Mð9ð 9ð 9ð(9ð 9ð 9ð2Nð Nð Nð(Nð Nð Nð.?ð ?ð ?ð0
5ð 
5ð 
5ð<ð <ð <ð6<ð <ð <ð*Qð Qð QðQð Qð Qð<ð <ð <ð0Pð Pð PðPð Pð PðPð Pð Pð?ð ?ð ?ð69ð 9ð 9ð4Hð Hð Hð. €X„]Ð;Ñ<Ô<ð&ð &ñ =Ô<ð&ðPð Pð PðHð Hð Hð05ð 5ð 5ðHð Hð Hð0Hð Hð Hð4Hð Hð Hð@Hð Hð Hð0Hð Hð Hð0Oð Oð Oð05ð 5ð 5ð<ð <ð <ð;ð ;ð ;ð.5ð 5ð 5ðPð Pð PðBð Bð Bð8Bð Bð Bð6Bð Bð Bð<	Lð 	Lð 	LðBð Bð Bð@Bð Bð Bð< Bð  Bð  BðDBð Bð BðBBð Bð Bð6Bð Bð Bð6Bð Bð Bð6Bð Bð Bð6Bð Bð Bð8!Bð !Bð !BðFBð Bð Bð@Bð Bð Bð@Bð Bð Bð@5ð 5ð 5ð$Bð Bð Bð>5ð 5ð 5ð$Hð Hð Hð@"<ð "<ð "<ðH9ð 9ð 9ð*9ð 9ð 9ð.Lð Lð Lð9ð 9ð 9ð(	Qð 	Qð 	Qð9ð 9ð 9ð<'<ð '<ð '<ðR9ð 9ð 9ð49ð 9ð 9ð>Qð Qð Qð<Bð Bð Bð. €X„]Ð&Ñ'Ô'ð,ð ,ñ (Ô'ð,ðBð Bð Bð* €X„]Ð&Ñ'Ô'ð)ð )ñ (Ô'ð)ð?ð ?ð ?ð ?ð ?ð ?ð ?r   rZ  Ú__main__))Únumpyr~   Ú
contextlibr   rk   r   r   Ú
numba.corer   r   Únumba.core.compilerr   r	   Únumba.core.cpur
   Únumba.tests.supportr   r   r   Únumba.core.errorsr   r   r   r  rX  r   r+   r3   r7   r;   r@   rC   rE   rH   rL   ÚTestCaserN   r‘   rZ  rŠ   Úmainr   r   r   ú<module>r     s%  ðð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð
 JÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ €€€ð ,Ð ð 	ð<ð <ñ 	„ð<ð 	€�kÐ"Ñ"Ô"ðð ñ #Ô"ðð 	€ˆcÐÑÔðð ñ Ôðð 	ð<ð <ñ 	„ð<ð
 	ð9ð 9ñ 	„ð9ð
 	ð+ð +ñ 	„ð+ð 	€˜6Ð"Ñ"Ô"ð&ð &ñ #Ô"ð&ð 	€˜6Ð"Ñ"Ô"ð9ð 9ñ #Ô"ð9ð
 ðð ñ „ðð ð Ø	€T�4ÐÑÔðð ñ Ôðð ð4Gð 4Gð 4Gð 4Gð 4G�hÔ'ñ 4Gô 4Gñ Ôð4Gðnt>ð t>ð t>ð t>ð t>�/ñ t>ô t>ð t>ðn ðU(?ð U(?ð U(?ð U(?ð U(?�ñ U(?ô U(?ñ ÔðU(?ðpP ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   