§
    2@Äj¿ý ã                   ón  — 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 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! 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)ÚLoweringErrorÚTypingErrorÚNumbaValueErrorc                 óN   — d| d         | d         z   | d         z   | d         z   z  S ©Nç      Ð?©r   é   ©r   r   ©r   éÿÿÿÿ©r   r   © ©Úas    úJC:\Projects\Historical\venv\Lib\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_kernelr2   #   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_kernelr6   (   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   r5   Úws      r   Ú!stencil_multiple_input_kernel_varr:   .   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   r5   Úfs      r   Ú%stencil_multiple_input_mixed_types_2dr?   4   s   € à˜”gÐ*ˆ1ˆTŒ7ˆ7 1 T¤7Ð*r   )r5   )Ústandard_indexingc                 óH   — | d         |d         z  | d         |d         z  z   S )Nr   r   r   r   r4   s     r   Ú!stencil_with_standard_indexing_1drB   9   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 r8   r   r4   s     r   Ú!stencil_with_standard_indexing_2drD   >   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_njitrG   D   s   € àˆq‰5€Lr   T©Úparallelc                 ó   — | dz   S rF   r   r   s    r   Úaddone_pjitrK   J   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ÚsuperrM   Ú__init__)ÚselfÚargsÚ	__class__s     €r   rS   zTestStencilBase.__init__S   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)rT   ÚfuncÚsigÚflagss       r   Ú_compile_thiszTestStencilBase._compile_thisZ   s0   € Ý�XÔ0Ô?Ý%Ô0Ô?ÀÀsØ! 5¨"ñ.ô .ð 	.r   c                 óŽ   — t          ¦   «         }d|_        |sdn|}t          |¦  «        |_        |                      |||¦  «        S rO   )r	   rQ   r
   Úauto_parallelr_   )rT   r\   r]   Úkwsr^   Úoptionss         r   Úcompile_parallelz TestStencilBase.compile_parallel_   sH   € Ý‘”ˆØˆŒ	Ø!Ð*�$�$ sˆÝ-¨gÑ6Ô6ˆÔØ×!Ò! $¨¨UÑ3Ô3Ð3r   c                 ó<   — |                       ||| j        ¬¦  «        S )N)r^   )r_   rP   )rT   r\   r]   s      r   Úcompile_njitzTestStencilBase.compile_njitf   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>j   ó    € Ð3Ð3Ð3¨•U”\ !‘_”_Ð3Ð3Ð3r   )Útuplerd   rf   )rT   ÚpyfuncrU   Úkwargsr]   ÚcpfuncÚcfuncs          r   Úcompile_allzTestStencilBase.compile_alli   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)rv   Úentry_pointÚnpÚtestingÚassert_almost_equalÚassertInÚlibraryÚget_llvm_str)
rT   Úno_stencil_funcrr   rU   ru   rt   ÚexpectedÚ	py_outputÚnjit_outputÚparfor_outputs
             r   ÚcheckzTestStencilBase.checkq   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_rS   r_   rd   rf   rv   rˆ   Ú__classcell__©rV   s   @r   rM   rM   O   s“   ø€ € € € € à!Ðð5ð 5ð 5ð 5ð 5ð.ð .ð .ð
4ð 4ð 4ð@ð @ð @ðð ð ðGð Gð Gð Gð Gð Gð Gr   rM   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 rX   )rR   r�   rS   ©rT   rU   rs   rV   s      €r   rS   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 )Nr1   ©Ú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 ©Nr1   )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 ©Nr1   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ˆ   )rT   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 rX   )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   r9   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—   rj   r   )r›   r9   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›   r9   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°   rx   ry   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›   r9   Ú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   r1   )r}   r³   )r   r9   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ˆ   rd   r   Úintpr|   r}   r~   r   r€   r�   r‚   )	rT   r®   r¨   r›   r9   rt   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˜   r2   rš   s      r   r®   z+TestStencil.test_stencil3.<locals>.test_seq  r¢   r   TrH   r°   r=   r+   )é   rÇ   N)r   Ú
assertTrue)rT   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—   rB   ©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ª   ©rT   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 )Nr1   ©rx   rx   )r}   r—   r˜   ÚonesrD   )r›   rœ   r�   rÔ   ÚDs        r   r®   z?TestStencil.test_stencil_standard_indexing_2d.<locals>.test_seq,  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 )Nr1   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_seq3  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˜   r6   rÓ   s       r   r®   z:TestStencil.test_stencil_multiple_inputs.<locals>.test_seqJ  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_seqP  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   rx   c                 óÜ   — t          j        | dz  ¦  «                             | | f¦  «        }t          j        | dz  ¦  «                             | | f¦  «        }d}t          |||¦  «        }|S )Nr1   r   )r}   r—   r˜   r:   )r›   rœ   r�   r9   rÔ   s        r   r®   z:TestStencil.test_stencil_multiple_inputs.<locals>.test_seqa  sc   € Ý”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAÝ”	˜!˜Q™$‘”×'Ò'¨¨A¨Ñ/Ô/ˆAØˆAÝ1°!°Q¸Ñ:Ô:ˆAØˆHr   Nrª   r×   s       r   Útest_stencil_multiple_inputsz(TestStencil.test_stencil_multiple_inputsF  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 )Nr1   ©Ú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_seqk  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 )Nr1   rç   )r}   r—   r˜   ré   rê   r?   )r›   rœ   r�   rë   rì   s        r   r®   z6TestStencil.test_stencil_mixed_types.<locals>.test_sequ  s�   € Ý”	˜!˜q™&Ñ!Ô!×)Ò)¨1¨a¨&Ñ1Ô1ˆAØ�Q‘�œ 1¨¡6Ñ*Ô*×2Ò2°A°q°6Ñ:Ô:Ñ:ˆAÝ”�q¥¤Ð)Ñ)Ô)ˆAÝ5°a¸¸AÑ>Ô>ˆAØˆHr   rx   rª   )rT   r¨   r®   r›   s       r   Útest_stencil_mixed_typesz$TestStencil.test_stencil_mixed_typesi  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 )Nr1   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™   rj   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 )Nr1   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ª   )rT   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™   rj   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ª   ©rT   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 )Nr1   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 )Nr1   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   r1   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©   rx   ry   rÇ   NzDstencil kernel index is not constant, 'neighborhood' option required)rd   r   rÃ   r|   r}   r~   r   ÚassertRaisesr   r€   ÚstrÚ	exceptionr   r   )rT   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   )rj   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{   )rd   rj   Úfloat64ÚassertNotInr�   r‚   )rT   r   rt   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.
        TrH   c                 ó<   — t           d„ ¦   «         } || ¦  «        }|S )Nc                 ó   — d}| | dz            S )Nr1   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>.kernel,  s   € Ø�d”G˜a œgÑ%Ð&r   r,   c                  ó˜   •— t          j        d¦  «                             d¦  «        } t          j        | ¦  «        } ‰| |¬¦  «         |S ©Né   ©rx   rÇ   r•   ©r}   r—   r˜   Ú	ones_like©rœ   ÚretÚ
stencil_fns     €r   Úwrappedz2TestStencil.test_out_kwarg_w_cval.<locals>.wrapped2  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 r9  r<  r>  s     €r   rA  z2TestStencil.test_out_kwarg_w_cval.<locals>.wrappedI  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)rj   r   r}   r—   r˜   Ú	full_liker=  r~   r   rv   r|   r  r   r€   r  r  rf   rd   ÚAssertionErrorr   )rT   Ú
const_valsr7  Ú	const_valrA  rœ   r„   r?  ÚimplsÚimplÚgotr!  ÚmsgÚcompilerr@  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 r6  r   r   s    r   r7  z9TestStencil.test_out_kwarg_w_cval_np_attr.<locals>.kernelc  s   € Ø˜$œ ! D¤'Ñ)Ð*r   r,   c                  ó˜   •— t          j        d¦  «                             d¦  «        } t          j        | ¦  «        } ‰| |¬¦  «         |S )Nç      (@r;  r•   r<  r>  s     €r   rA  z:TestStencil.test_out_kwarg_w_cval_np_attr.<locals>.wrappedh  sE   ø€ Ý”I˜c‘N”N×*Ò*¨6Ñ2Ô2�Ý”l 1‘o”o�Ø�
˜1 #Ð&Ñ&Ô&Ð&Ø�
r   rS  r;  r$   r   Nr•   )r}   ÚnanrP  Úfloatrj   r   r—   r˜   rD  r=  r~   r   rv   r|   )rT   r-   r7  rA  rœ   r„   r?  rH  rI  rJ  r@  s             @r   Útest_out_kwarg_w_cval_np_attrz)TestStencil.test_out_kwarg_w_cval_np_attr^  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‹   rS   Úskip_unsupportedr«   rÄ   rÎ   rØ   rß   rä   rî   rú   r  r"  r)  r2  rM  rV  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 rX   )rR   rY  rS   r’   s      €r   rS   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.
        rc   Ú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 rX   r   ©Úarg0Ústencil_func_impls    €r   Úwrap_stencilz=TestManyStencils.check_against_expected.<locals>.wrap_stencilÑ  ó   ø€ Ø(Ð(¨Ñ.Ô.Ð.r   r1   c                 ó   •—  ‰| |¦  «        S rX   r   ©rw  Úarg1rx  s     €r   ry  z=TestManyStencils.check_against_expected.<locals>.wrap_stencilÔ  ó   ø€ Ø(Ð(¨¨tÑ4Ô4Ð4r   rx   c                 ó   •—  ‰| ||¦  «        S rX   r   ©rw  r}  Úarg2rx  s      €r   ry  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   ri   rl   s     r   ro   z;TestManyStencils.check_against_expected.<locals>.<listcomp>Þ  rp   r   Úparforsz
@stencil_output:
z
njit_output:
z
parfor_output:
ry   r`  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   rl   s     r   ro   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   rl   s     r   ro   z;TestManyStencils.check_against_expected.<locals>.<listcomp>   ó    € Ð:Ð:Ð: Q�T˜A˜aœD‘[Ð:Ð:Ð:r   Ú c                 ó   — g | ]}d |z  ‘ŒS ©z%s: Message: %s

r   rl   s     r   ro   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   re  Úupdater   r²   Ú
ValueErrorrq   rf   r|   rd   Úprintr}   r~   r   ÚassertEqualrè   rc  rb  rf  r  r€   r�   r‚   rE  ÚRuntimeErrorÚjoin)rT   rr   r„   rU   rs   rc   r\  ÚDEBUG_OUTPUTro  Ú
stencil_exÚnjit_exÚ	parfor_exÚstencil_argsÚstencilfunc_outputry  r]   r†   Úwrapped_cfuncr‡   Úwrapped_cpfuncr!  rK  rH  ÚerrsÚstr1Ústr2rm  rn  rx  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.
        rc   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^  ra  rg  s         €€r   ro  z7TestManyStencils.check_exceptions.<locals>.errorhandler@  rp  rq  r   r   rr  rs  rt  r   c                 ó   •—  ‰| ¦  «        S rX   r   rv  s    €r   ry  z7TestManyStencils.check_exceptions.<locals>.wrap_stencilg  rz  r   r1   c                 ó   •—  ‰| |¦  «        S rX   r   r|  s     €r   ry  z7TestManyStencils.check_exceptions.<locals>.wrap_stencilj  r~  r   rx   c                 ó   •—  ‰| ||¦  «        S rX   r   r€  s      €r   ry  z7TestManyStencils.check_exceptions.<locals>.wrap_stencilm  r‚  r   rƒ  c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   ri   rl   s     r   ro   z5TestManyStencils.check_exceptions.<locals>.<listcomp>t  rp   r   r…  c                 ó   — g | ]}d |z  ‘ŒS r‡  r   rl   s     r   ro   z5TestManyStencils.check_exceptions.<locals>.<listcomp>�  r‰  r   rŠ  c                 ó$   — g | ]}d |d         z  ‘ŒS rŒ  r   rl   s     r   ro   z5TestManyStencils.check_exceptions.<locals>.<listcomp>†  r�  r   rŽ  c                 ó   — g | ]}d |z  ‘ŒS r�  r   rl   s     r   ro   z5TestManyStencils.check_exceptions.<locals>.<listcomp>‡  r‘  r   r’  r“  r”  r   )r•  r–  r   re  r—  r   r²   r˜  rq   rf   r|   rd   r›  rœ  )rT   rr   rU   rs   rc   r\  ro  rž  rŸ  r   r¡  ry  r]   r£  r¤  rK  rH  r¥  r¦  r§  rm  rn  rx  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   rr  )r–  Úitems)rT   rs   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˜  rd  )rT   rU   rs   r"   Ú
init_shapern   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   r7  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º  rf  r'   ©r   r"   Ú_TestManyStencils__retdtypeÚ_TestManyStencils__b0Ú_TestManyStencils__bÚ_TestManyStencils__ar7  rT   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:  rx   rÇ   N©r}   r—   r˜   r¨  ©rT   Ú_TestManyStencils__kernelr   r„   r7  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   r7  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   rS  rx   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   r7  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   rS  rx   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   r7  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   rS  rx   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   r7  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   rS  rx   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   r7  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   rS  rx   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   r7  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>.__kernel/  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   rS  rx   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   r7  z-TestManyStencils.test_basic07.<locals>.kernel?  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>.__kernelE  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   rS  rx   rÇ   NrÊ  rË  s   `   @r   Útest_basic07zTestManyStencils.test_basic07=  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   r7  z-TestManyStencils.test_basic08.<locals>.kernelU  ó   € Ø�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   rS  rx   rÇ   NrÊ  rË  s   `   @r   Útest_basic08zTestManyStencils.test_basic08S  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 )Nr/   r   r   s    r   r7  z-TestManyStencils.test_basic09.<locals>.kernelk  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   r1   r0   rÂ  rÄ  s         €€r   rÉ  z/TestManyStencils.test_basic09.<locals>.__kernelq  ré  r   rS  rx   rÇ   NrÊ  rË  s   `   @r   Útest_basic09zTestManyStencils.test_basic09i  rÜ  r   c                 ó²   ‡ ‡— d„ Šˆˆ fd„}t          j        d¦  «                             dd¦  «        } ||d¦  «        }‰                      ‰||¦  «         dS )rÏ  c                 ó$   — | d         | d         z   S r6  r   r   s    r   r7  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   rS  rx   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   r7  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   rS  rx   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   r7  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   rS  rx   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   r7  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   rS  rx   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=   rB  r   r   s    r   r7  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   rB  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   rS  rx   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 )NrB  r=   r   ©r   Úts     r   r7  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  r7  rT   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   rS  rx   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   r7  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   rS  rx   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=   )r1   r   r+   r   r   s    r   r7  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   r1   r+   rÂ  rÄ  s         €€r   rÉ  z/TestManyStencils.test_basic17.<locals>.__kernel  r$  r   r:  rx   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=   ©r0   r   r+   r   r   s    r   r7  z-TestManyStencils.test_basic18.<locals>.kernel-  ó   € Ø�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   r1   r0   r+   rÂ  rÄ  s         €€r   rÉ  z/TestManyStencils.test_basic18.<locals>.__kernel2  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:  rx   rÇ   NrÊ  rË  s   `   @r   Útest_basic18zTestManyStencils.test_basic18+  ó   øø€ ð	+ð 	+ð 	+ð
	ð 	ð 	ð 	ð 	ð 	õ Œ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   rx   r+   r   r   s    r   r7  z-TestManyStencils.test_basic19.<locals>.kernelC  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   rx   r+   rÂ  rÄ  s         €€r   rÉ  z/TestManyStencils.test_basic19.<locals>.__kernelH  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:  rx   rÇ   NrÊ  rË  s   `   @r   Útest_basic19zTestManyStencils.test_basic19A  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   r7  z-TestManyStencils.test_basic20.<locals>.kernelY  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 )Nr!   r   rç   rx   r   r:  r+   rÂ  rÄ  s         €€r   rÉ  z/TestManyStencils.test_basic20.<locals>.__kernel^  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:  rx   rÇ   NrÊ  rË  s   `   @r   Útest_basic20zTestManyStencils.test_basic20W  r2  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   r7  z-TestManyStencils.test_basic21.<locals>.kernelo  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>.__kernelt  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:  rx   rÇ   NrÊ  rË  s   `   @r   Útest_basic21zTestManyStencils.test_basic21m  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   r7  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   rS  rx   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 ©Nr0  )r1   r   r   r=   ©r}   Úsin©r   rn   s     r   r7  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   r1   r0  ©r¼  r}   rÃ  rº  rf  r'   rI  ©	r   r"   rÅ  rÆ  rÇ  rÈ  rn   r7  rT   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   rS  rx   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 rG  rH  rJ  s     r   r7  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 rL  rM  rN  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   rS  rx   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:  rx   rÇ   c                 ó   — | d         dz   S )Nr   r+   r   r   s    r   r7  z-TestManyStencils.test_basic24.<locals>.kernelÌ  s   € Ø�Q”4˜"‘9Ðr   ©r\  N)r}   r—   r˜   r²  r   ©rT   r   r7  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:  rx   rÇ   c                 ó   — dS )Nr+   r   r   s    r   r7  z-TestManyStencils.test_basic25.<locals>.kernelÕ  s   € Ø�2r   rV  N©r}   r—   r˜   r²  r˜  r   rW  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   r7  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ç   r1   r   r+   rÂ  )	r   r"   rÅ  rÆ  Ú_TestManyStencils__crÇ  rÈ  r7  rT   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Ç   é   r1   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   r7  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   rx   r1   r   r+   rÂ  )
r   r"   rÅ  rÆ  Ú_TestManyStencils__dr`  rÇ  rÈ  r7  rT   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Ç   rb  r1   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   r7  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   rl  )r¼  r}   rÃ  rº  rf  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:  rx   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 rS  rx   rÇ   c                 óT   — | dt          t          j        d¦  «        ¦  «        f         S )Nr   )r/  r}   Úcosr   s    r   r7  z-TestManyStencils.test_basic29.<locals>.kernel)  s    € Ø�Q��BœF 1™IœI™œÐ&Ô'Ð'r   rV  N©r}   r—   r˜   r²  r˜  r   r   rW  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   r7  z-TestManyStencils.test_basic30.<locals>.kernel1  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>.__kernel6  rú  r   r:  rx   rÇ   Nrn  rË  s   `   @r   Útest_basic30zTestManyStencils.test_basic30/  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   r7  z-TestManyStencils.test_basic31.<locals>.kernelF  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>.__kernelL  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:  rx   rÇ   Nrn  rË  s   `   @r   Útest_basic31zTestManyStencils.test_basic31D  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?rS  rx   rÇ   c                 ó$   — d}d|z
  }| |df         S r}  r   )r   Úsr  s      r   r7  z.TestManyStencils.test_basic31b.<locals>.kernel_  s   € ØˆAØ�A‘ˆAØ�Q˜�T”7ˆNr   N)r}   r—   r˜   rW  s      r   Útest_basic31bzTestManyStencils.test_basic31bZ  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 rF   r   r  s     r   r7  z.TestManyStencils.test_basic31c.<locals>.kernelh  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  r7  rT   s         €€r   rÉ  z0TestManyStencils.test_basic31c.<locals>.__kerneln  s‹   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜Q ¤¨¤
¨Q¡Ñ/Ô/ð (ð (�Ø�Ø˜s Q™wœZ��S�T‘
�
ØˆKr   rS  N©r}   r—   r¨  rË  s   `   @r   Útest_basic31czTestManyStencils.test_basic31cf  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 indexrS  rx   rÇ   c                 ó:   — | t          j        d¦  «        df         S r}  )r}   Úint8r   s    r   r7  z-TestManyStencils.test_basic32.<locals>.kernel  s   € Ø•R”W˜Q‘Z”Z �]Ô#Ð#r   rV  Nru  rW  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   r7  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º  rf  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   rS  rx   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.  rH  )r   Úgs     r   r7  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   r1   r”  r   r0   rM  )	r   r"   rÅ  rÆ  rÇ  rÈ  r•  r7  rT   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   r7  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   rS  rx   rÇ   Nr-   r°   ©rc   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   r7  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   rS  rx   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   r7  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   rS  rx   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   r7  z-TestManyStencils.test_basic38.<locals>.kernel÷  r¡  r   rS  rx   rÇ   ©r   rr  r   r-   rB  ©rc   r\  N©r}   r—   r˜   r¸  r   r²  ©rT   r7  r   rl  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   r7  z-TestManyStencils.test_basic39.<locals>.kernel  r¡  r   rÑ   r1   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-   r7  rT   s	         €€€r   rÉ  z/TestManyStencils.test_basic39.<locals>.__kernel  r¨  r   rS  rx   rÇ   Nr-   rœ  )r}   rI  rt  r—   r˜   r¨  )rT   rÌ  r   r„   r-   r7  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   r0   r   r4   s     r   r7  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ç   r1   r   r0   rÂ  ©	r   r5   r"   rÅ  rÆ  rÇ  rÈ  r7  rT   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   rS  rx   rÇ   NrÊ  ©rT   rÌ  r   r5   r„   r7  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   r4   s     r   r7  z-TestManyStencils.test_basic41.<locals>.kernel3  r¸  r   rS  rx   rÇ   r+   r   rV  N©r}   r—   r˜   r²  r˜  rE  ©rT   r7  r   r5   s       r   Útest_basic41zTestManyStencils.test_basic411  ó‡   € ð	&ð 	&ð 	&åŒ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   r4   s     r   r7  z-TestManyStencils.test_basic42.<locals>.kernel<  r¸  r   rS  rx   rÇ   ç      "@rV  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   r1   r.  r   r   r4   s     r   r7  z-TestManyStencils.test_basic43.<locals>.kernelE  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   r1   r0   r   rÂ  rº  s	          €€r   rÉ  z/TestManyStencils.test_basic43.<locals>.__kernelJ  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_basic43C  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   r4   s     r   r7  z-TestManyStencils.test_basic44.<locals>.kernel]  s   € ØˆAˆd‰GØ�T”7ˆNr   rS  rx   rÇ   rV  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   r4   s     r   r7  z-TestManyStencils.test_basic45.<locals>.kernelg  s   € ØˆAˆd‰GØ�T”7˜Q˜tœWÑ$Ð$r   rS  rx   rÇ   rV  NrÏ  rÀ  s       r   Útest_basic45zTestManyStencils.test_basic45e  ó‰   € ð	%ð 	%ð 	%õ Œ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   r4   s     r   r7  z-TestManyStencils.test_basic46.<locals>.kernelq  s"   € Ø˜”gˆAˆd‰GØ�T”7˜Q˜tœWÑ$Ð$r   rS  rx   rÇ   rV  NrÏ  rÀ  s       r   Útest_basic46zTestManyStencils.test_basic46o  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   r5   r	  s      r   r7  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   r5   r	  r"   rÅ  rÆ  rÇ  rÈ  r7  rT   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   rS  rx   rÇ   NrÊ  ©rT   rÌ  r   r5   r	  r„   r7  s   `     @r   Útest_basic47zTestManyStencils.test_basic47y  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 )Nr0  r   )ÚTr  s     r   r7  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   r0  )r¼  r}   rÃ  rº  rf  r'   rá  )	r   r"   rÅ  rÆ  rÇ  rÈ  r	  r7  rT   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   rS  rx   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   r5  r   r4   s     r   r7  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   r5  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   rS  rx   rÇ   Nr@   r5   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   r4   s     r   r7  z-TestManyStencils.test_basic50.<locals>.kernelÈ  r¸  r   Nr   ©rT   r7  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   r1   r   r4   s     r   r7  z-TestManyStencils.test_basic51.<locals>.kernelÎ  r  r   rS  rx   rÇ   r@   r   r5   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   r7  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   r1   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   rS  rx   rÇ   r”  r1   Nr@   r5   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   r4   s     r   r7  z-TestManyStencils.test_basic53.<locals>.kernelð  r  r   rS  rx   rÇ   r¬  r@   r	  r­  N)r}   r—   r˜   r¸  rc  r   r²  ©rT   r7  r   r5   rl  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 )Nr1   r   r   r   )r   r5   r  s      r   r7  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   r1   rÂ  )
r   r5   r"   rÅ  rÆ  rÇ  rÈ  r  r7  rT   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   rS  rx   rÇ   Nr@   r5   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   r1   r   r   r   )r   r5   r‚  r  s       r   r7  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   r5   r"   rÅ  rÆ  rÇ  rÈ  r‚  r  r7  rT   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   rS  rx   rÇ   Nr@   r5   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   r1   r   r   )r   r5   r‚  Úaccr¶  r  s         r   r7  z-TestManyStencils.test_basic56.<locals>.kernel/  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   r5   r"   rÅ  rÆ  rÇ  rÈ  r‚  r  r¶  r  r7  rT   s              €€r   rÉ  z/TestManyStencils.test_basic56.<locals>.__kernel9  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   rS  rx   rÇ   Nr@   r5   rœ  rÊ  r»  s   `    @r   Útest_basic56zTestManyStencils.test_basic56-  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   r7  z-TestManyStencils.test_basic57.<locals>.kernelO  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   r5   r"   rÅ  rÆ  rÇ  rÈ  r	  r7  rT   s
           €€r   rÉ  z/TestManyStencils.test_basic57.<locals>.__kernelU  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   rS  rx   rÇ   Nr@   r5   rœ  rÊ  r»  s   `    @r   Útest_basic57zTestManyStencils.test_basic57M  ó¼   øø€ ð	"ð 	"ð 	"ð	ð 	ð 	ð 	ð 	ð 	õ Œ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   r7  z-TestManyStencils.test_basic58.<locals>.kernelg  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>.__kernelm  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   rS  rx   rÇ   Nr@   r5   rœ  rÊ  r»  s   `    @r   Útest_basic58zTestManyStencils.test_basic58e  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   r7  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   rS  rx   rÇ   r0  Nr@   r5   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   r7  z-TestManyStencils.test_basic60.<locals>.kernel˜  s   € Ø�T”7˜Q˜tœWÑ$ q¨¤tÑ+Ð+r   rS  rx   rÇ   )r0  )rr  r@   r5   r	  r­  Nr®  )rT   r7  r   r5   r	  rl  s         r   Útest_basic60zTestManyStencils.test_basic60•  s¤   € ð	,ð 	,ð 	,åŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆÝŒI�c‰NŒN×"Ò" 1 aÑ(Ô(ˆØˆà× Ò ­Ð Ñ8Ô8ˆØ×Ò˜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   r4   s     r   r7  z-TestManyStencils.test_basic61.<locals>.kernel¥  r  r   rS  rx   rÇ   r@   r   r­  N)r}   r—   r˜   r²  rc  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   r4   s     r   r7  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!   rl  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   rS  rx   rÇ   Nr5   rl  )r@   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   r4   s     r   r7  z-TestManyStencils.test_basic63.<locals>.kernelÇ  s   € Ø�Q˜˜$œ�Z”=Ð r   rS  rx   rÇ   r:  r¬  r@   r5   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   r7  z-TestManyStencils.test_basic64.<locals>.kernelÕ  r¿  r   rS  rx   rÇ   r@   r   r­  Nr[  ©rT   r7  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   r7  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)   r7  rT   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‡  ©rT   rÌ  r   Únhr„   r7  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   r7  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 r0  rÂ  r2  s	          €€r   rÉ  z/TestManyStencils.test_basic66.<locals>.__kernel	  r4  r   r5  r6  r"   rœ  Nr‡  r7  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   r7  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ç   r0  r   r°   r    rB  rC  rÂ  ©r   r"   rÅ  rÆ  Ú_TestManyStencils__bnr3  r-  r)   r§   r7  rT   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@r0  é   ©r   ©rB  r   r"   rœ  NrÊ  r7  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   rB  r   rC  r&   )r   r-  r§   s      r   r7  z.TestManyStencils.test_basic67b.<locals>.kernel2	  s=   € ØˆEÝ˜3 ‘]”]ð !ð !�Ø˜˜1˜a˜4œÑ ��Ø˜FÑ#Ð#r   rK  r0  rL  r"   )rN  r­  N)r}   r—   r˜   r²  r   r˜  r%  s      r   Útest_basic67bzTestManyStencils.test_basic67b0	  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 rA  r&   rD  s       r   r7  z-TestManyStencils.test_basic68.<locals>.kernel>	  rE  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 rG  rÂ  rH  s            €€r   rÉ  z/TestManyStencils.test_basic68.<locals>.__kernelH	  rJ  r   rK  r0  rL  rM  r"   rœ  NrÊ  r7  s   `    @r   Útest_basic68zTestManyStencils.test_basic68<	  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   rB  r=   rC  r&   rD  s       r   r7  z-TestManyStencils.test_basic69.<locals>.kernel^	  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 rG  rÂ  rH  s            €€r   rÉ  z/TestManyStencils.test_basic69.<locals>.__kernelg	  rJ  r   rK  r0  rL  rM  r"   rœ  NrÊ  r7  s   `    @r   Útest_basic69zTestManyStencils.test_basic69\	  rP  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   rS  r    r   rB  rC  r&   ©r   r-  Úzzr)   r  r§   s         r   r7  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ç   r0  r   r°   rS  r    rB  rC  rÂ  ©r   r"   rÅ  rÆ  rI  r3  r-  r_  r)   r  r§   r7  rT   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   rK  r0  rL  rM  r"   rœ  NrÊ  r7  s   `    @r   Útest_basic70zTestManyStencils.test_basic70z	  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   ç        éñÿÿÿrB  r+  r&   )r   r-  r)   r¶  s       r   r7  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ç   r1  r*  r   re  rf  rB  r+  rÂ  )
r   r"   rÅ  rÆ  r3  r-  r)   r¶  r7  rT   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   r5  r6  r"   rœ  Nr‡  r7  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   r7  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ç   r1  rk  r:  r+  rÂ  r2  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   r5  r6  r"   rœ  Nr‡  r7  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   r7  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ç   r0  r°   rr  r+  rÂ  r2  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   r5  ))r°   r0  r"   rœ  Nr‡  r7  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   rB  r$   r+  r&   r,  s      r   r7  z.TestManyStencils.test_basic73b.<locals>.kernelõ	  rl  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ç   r0  rB  r$   r+  rÂ  r2  s	          €€r   rÉ  z0TestManyStencils.test_basic73b.<locals>.__kernelý	  rn  r   r5  ))rB  r    r"   rœ  Nr‡  r7  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    rr  r+  r&   r,  s      r   r7  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°   r0  r    rr  r+  rÂ  r2  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   r5  ))r    r0  r"   rœ  Nr‡  r7  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   rB  r   r+  r&   r,  s      r   r7  z-TestManyStencils.test_basic75.<locals>.kernel+
  rl  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ç   r0  rB  r   r+  rÂ  r2  s	          €€r   rÉ  z/TestManyStencils.test_basic75.<locals>.__kernel4
  rn  r   r5  ))rB  r0   r"   rœ  Nr‡  r7  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   rS  r:  rÇ   rC  r&   r^  s         r   r7  z-TestManyStencils.test_basic76.<locals>.kernelG
  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ç   rx   r   rS  r:  rÇ   rC  rÂ  ra  s              €€r   rÉ  z/TestManyStencils.test_basic76.<locals>.__kernelS
  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   rK  r0  rL  ))r:  r   )r:  rx   r"   rœ  NrÊ  r7  s   `    @r   Útest_basic76zTestManyStencils.test_basic76E
  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   r5   r-  r)   r§   s        r   r7  z-TestManyStencils.test_basic77.<locals>.kernelj
  ó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ç   rx   r   r:  rÅ  rÂ  ©r   r5   r"   rÅ  rÆ  rI  r3  r-  r)   r§   r7  rT   s             €€r   rÉ  z/TestManyStencils.test_basic77.<locals>.__kernels
  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   rK  r0  rL  ©©r:  r   rŽ  r"   rœ  NrÊ  ©rT   rÌ  r   r5   r8  r„   r7  s   `     @r   Útest_basic77zTestManyStencils.test_basic77h
  óÅ   øø€ ð	 ð 	 ð 	 ð	ð 	ð 	ð 	ð 	ð 	õ Œ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   éúÿÿÿr0   éùÿÿÿr   rÅ  r&   rˆ  s        r   r7  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ç   r4  r   rË  r”  r0   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ê  rL  )©r”  r:  )r•  r0   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”  r0   r1   r0  rÅ  r&   rˆ  s        r   r7  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”  r0   r1   r0  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ê  rL  )r˜  )r1   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   r7  z-TestManyStencils.test_basic79.<locals>.kernelÊ
  r‰  r   rK  r0  rL  r1   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   r7  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   rK  r0  rL  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   r7  z-TestManyStencils.test_basic81.<locals>.kernelû
  s`   € ØˆEÝ˜2˜q‘\”\ð ,ð ,�Ý˜r 1™œð ,ð ,�AØ˜Q˜q !˜tœW q¨¤t™^Ñ+�E�Eð,à˜B‘<Ðr   rK  r0  rL  r   r¬  r"   r�  r­  N)r}   r—   r˜   Úcopyr¸  r   rE  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   rx   rÅ  r&   rˆ  s        r   r7  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ç   rx   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   rK  r0  rL  r�  r5   )r"   r@   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   r7  z-TestManyStencils.test_basic83.<locals>.kernel-  r®  r   rK  r0  rL  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ç   rx   r   r   r:  r­  rÅ  rÂ  rŒ  s             €€r   rÉ  z/TestManyStencils.test_basic83.<locals>.__kernel9  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�  r5   rµ  ©r"   r@   r-   rœ  Nr°  )rT   r   r5   rÌ  r8  r„   r7  s   `     @r   Útest_basic83zTestManyStencils.test_basic83+  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   )rG   r   s    r   r7  z-TestManyStencils.test_basic84.<locals>.kernelQ  ó   € Ø�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º  rf  r'   rG   Úpy_funcrÄ  s         €€r   rÉ  z/TestManyStencils.test_basic84.<locals>.__kernelV  óæ   ø€ Ø×%Ò% 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   rK  r0  rL  NrÊ  rË  s   `   @r   Útest_basic84zTestManyStencils.test_basic84O  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º  )rK   r   s    r   r7  z-TestManyStencils.test_basic85.<locals>.kernelf  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º  rf  r'   rK   r½  rÄ  s         €€r   rÉ  z/TestManyStencils.test_basic85.<locals>.__kernell  r¾  r   rK  r0  rL  NrÊ  rË  s   `   @r   Útest_basic85zTestManyStencils.test_basic85d  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   r7  z-TestManyStencils.test_basic86.<locals>.kernel}  r¿  r   rK  r0  rL  Ú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   r7  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È  r7  rT   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   rK  r0  rL  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   r7  z-TestManyStencils.test_basic88.<locals>.kernelš  s   € Ø˜˜4œ‘=Ð r   rS  rx   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   r0  rl  r5  rb  r=   rÒ   r   r   s    r   r7  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   rx   r0  rl  rb  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   rK  r0  rL  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Å  rK  r+   r&   )r   r5   r-  r)   r§   Úress         r   r7  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ç   rx   r   r   r:  r­  rÅ  rK  r+   rÂ  )r   r5   r"   rÅ  rÆ  rI  r3  r-  r)   r§   rÖ  r7  rT   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   rK  r0  rL  r�  r5   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   r1   r=   r   r4   s     r   r7  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È  r5   r7  rT   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   rK  r0  rL  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   r7  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   rL  r1   rÇ   r°   N©r}   r�  r—   r˜   ro  rê   r¨  ©rT   rÌ  rœ   r„   r7  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   r7  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>.__kernel,  rã  r   rL  r1   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   r1   ©r}   Úmedianr   s    r   r7  z-TestManyStencils.test_basic94.<locals>.kernelC  ó"   € Ý”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   r1   ©r¼  r}   rÃ  rº  rf  r'   rï  )r   r"   rÅ  rÆ  rI  r3  r7  rT   s         €€r   rÉ  z/TestManyStencils.test_basic94.<locals>.__kernelH  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   rL  rç   rÇ   r°   ©rç  rç  r"   rœ  N)r}   r—   Úuint32r˜   r¨  r7  s   `    @r   Útest_basic94zTestManyStencils.test_basic94A  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   r1   r:  rÇ   rî  r   s    r   r7  z-TestManyStencils.test_basic95.<locals>.kernel[  rð  r   Nr   rë  s     r   Útest_basic95zTestManyStencils.test_basic95X  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   r7  z-TestManyStencils.test_basic96.<locals>.kernela  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Æ  r3  r7  rT   s        €€r   rÉ  z/TestManyStencils.test_basic96.<locals>.__kernelf  sš   ø€ Ø×%Ò% a°lÐ%ÑCÔCÐCØ˜ ™œˆJÝ”7˜1œ7 A­T°*Ñ-=Ô-=Ð>Ñ>Ô>ˆDÝ˜a ¤¨¤¨a¡Ñ0Ô0ð ?ð ?�Ý œi¨¨$°©)°D¸1±HÐ*<Ô(=Ñ>Ô>��T�U‘�ØˆKr   rL  rç   )rç  r"   rœ  N)r}   r—   rõ  r¨  r7  s   `    @r   Útest_basic96zTestManyStencils.test_basic96_  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   r1   rx   rî  r   s    r   r7  z-TestManyStencils.test_basic97.<locals>.kernelw  s   € Ý”9˜Q˜r !˜t Q˜wœZÑ(Ô(Ð(r   Nr   rë  s     r   Útest_basic97zTestManyStencils.test_basic97t  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 )
rO  rP  c                 ó   — | d         S r<   r   r   s    r   r7  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Æ  rI  r3  r-   r7  rT   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      @)r1   rx   rô  )r"   r-   rœ  N)r}   rT  rP  rU  r—   r˜   r¨  )rT   rÌ  r   r8  r„   r-   r7  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‹   rS   r¨  r²  r¸  r¼  rÍ  rÔ  rÛ  rà  rä  rê  rï  rô  rû  rÿ  r  r  r  r  r  r  r%  r*  r1  r7  r<  r@  rD  rO  rS  rX  r\  rc  ri  rq  rv  rz  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&  r9  r>  rO  rS  rW  r[  rb  rh  ro  rt  rx  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   rY  rY  }  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   rY  Ú__main__)(Únumpyr}   Ú
contextlibr   rj   r   r   Ú
numba.corer   r   Únumba.core.compilerr   r	   Únumba.core.cpur
   Únumba.tests.supportr   r   Únumba.core.errorsr   r   r   r  rW  r   r*   r2   r6   r:   r?   rB   rD   rG   rK   ÚTestCaserM   r�   rY  r‰   Úmainr   r   r   ú<module>r     sû  ðð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø IÐ 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   