ó
    „ñ:i(ñ ã                   óò  • S SK rS SKJr  S SKrS SKJrJr  S SKJrJ	r	  S SK
JrJr  S SKJr  S SKJrJr  S SKJrJrJr  S SKr\r\S	 5       r\" S
S9S 5       r\" SS9S 5       r\S 5       r\S 5       r\S 5       r\" SS9S 5       r\" SS9S 5       r\S 5       r \(       d  \" SS9S 5       r! " S S\RD                  5      r# " S S\#5      r$\ " S S \#5      5       r%\&S!:X  a  \RN                  " 5         gg)"é    N)Úcontextmanager)ÚnjitÚstencil)ÚtypesÚregistry)Úcompile_extraÚFlags)ÚParallelOptions)Úskip_parfors_unsupportedÚ_32bit)ÚLoweringErrorÚTypingErrorÚNumbaValueErrorc                 ó6   • SU S   U S   -   U S   -   U S   -   -  $ ©Nç      Ð?©r   é   ©r   r   ©r   éÿÿÿÿ©r   r   © ©Úas    Ú\/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_stencils.pyÚstencil1_kernelr      s,   € à�1�T‘7˜Q˜t™WÑ$ q¨¡xÑ/°!°E±(Ñ:Ñ;Ð;ó    )©éûÿÿÿr   ©Úneighborhoodc                 óJ   • U S   n[        SS5       H
  nXU   -  nM     SU-  $ )Nr    éüÿÿÿr   ç333333Ó?©Úrange)r   ÚcumÚis      r   Ústencil2_kernelr*      s0   € à
ˆB‰%€CÜ�2�qŽ\ˆØ�‰t‰Šñ à�‰9Ðr   ç      ð?©Úcvalc                 ó   • SU S   -  $ )Nr   ©éþÿÿÿé   r   r   s    r   Ústencil3_kernelr2   #   s   € à�!�E‘(‰?Ðr   c                 óf   • SU S   U S   -   U S   -   U S   -   US   -   US   -   US   -   U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   • X S   U S   -   U S   -   U S   -   US   -   US   -   US   -   U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                 ó*   • US   (       a  U S   $ US   $ ©N©r   r   r   )r   r5   Úfs      r   Ú%stencil_multiple_input_mixed_types_2dr?   4   s   € à˜—gˆ1ˆT‰7Ð* 1 T¡7Ð*r   )r5   )Ústandard_indexingc                 ó0   • U S   US   -  U S   US   -  -   $ )Nr   r   r   r   r4   s     r   Ú!stencil_with_standard_indexing_1drB   9   s%   € àˆR‰5�1�Q‘4‰<˜!˜A™$  1¡™+Ñ%Ð%r   c                 ó`   • U S   US   -  U S   US   -  -   U S   US   -  -   U S   U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                 ó   • U S-   $ ©Nr   r   r   s    r   Úaddone_njitrG   D   s   € àˆq‰5€Lr   T©Úparallelc                 ó   • U S-   $ rF   r   r   s    r   Úaddone_pjitrK   J   s   € à�1‰uˆr   c                   óJ   ^ • \ rS rSrSrU 4S jrS rS rS rS r	S r
S	rU =r$ )
ÚTestStencilBaseéO   Fc                 óh   >• [        5       U l        SU R                  l        [        [        U ]  " U6   g ©NT)r	   ÚcflagsÚnrtÚsuperrM   Ú__init__)ÚselfÚargsÚ	__class__s     €r   rT   ÚTestStencilBase.__init__S   s&   ø€ ä“gˆŒØˆ�‰ŒäŒo˜tÒ-¨tÒ4r   c           	      ó‚   • [        [        R                  R                  [        R                  R                  XS U0 5      $ ©N)r   r   Ú
cpu_targetÚtyping_contextÚtarget_context)rU   ÚfuncÚsigÚflagss       r   Ú_compile_thisÚTestStencilBase._compile_thisZ   s5   € ÜœX×0Ñ0×?Ñ?Ü%×0Ñ0×?Ñ?ÀØ! 5¨"ó.ð 	.r   c                 ó~   • [        5       nSUl        U(       d  SOUn[        U5      Ul        U R	                  XU5      $ rP   )r	   rR   r
   Úauto_parallelra   )rU   r^   r_   Úkwsr`   Úoptionss         r   Úcompile_parallelÚ TestStencilBase.compile_parallel_   s9   € Ü“ˆØˆŒ	Þ!‘$ sˆÜ-¨gÓ6ˆÔØ×!Ñ! $¨UÓ3Ð3r   c                 ó6   • U R                  XU R                  S9$ )N)r`   )ra   rQ   )rU   r^   r_   s      r   Úcompile_njitÚTestStencilBase.compile_njitf   s   € Ø×!Ñ! $°4·;±;Ð!Ð?Ð?r   c                 ó¶   • [        U Vs/ s H  n[        R                  " U5      PM     sn5      nU R                  X5      nU R	                  X5      nXv4$ s  snf rZ   )ÚtupleÚnumbaÚtypeofrg   rj   )rU   ÚpyfuncrV   ÚkwargsÚxr_   ÚcpfuncÚcfuncs           r   Úcompile_allÚTestStencilBase.compile_alli   sP   € Ü©dÓ3ªd¨”U—\’\ !–_©dÑ3Ó4ˆà×&Ñ& vÓ3ˆà×!Ñ! &Ó.ˆØˆ}Ðùò 4s   Š Ac                 ó†  • U R                   " U/UQ76 u  pEU" U6 nU" U6 nUR                  " U6 nUR                  " U6 n	[        R                  R	                  XvSS9  [        R                  R	                  X†SS9  [        R                  R	                  X–SS9  U R                  SUR                  R                  5       5        g )Né   ©Údecimalú@do_scheduling)ru   Úentry_pointÚnpÚtestingÚassert_almost_equalÚassertInÚlibraryÚget_llvm_str)
rU   Úno_stencil_funcrp   rV   rt   rs   ÚexpectedÚ	py_outputÚnjit_outputÚparfor_outputs
             r   ÚcheckÚTestStencilBase.checkq   s³   € Ø×(Ò(¨Ð7°$Ò7‰ˆá" DÐ)ˆá˜D�Mˆ	ð ×'Ò'¨Ð.ˆð ×*Ò*¨DÐ1ˆä
�
‰
×&Ñ& yÀAÐ&ÑFÜ
�
‰
×&Ñ& {ÀaÐ&ÑHÜ
�
‰
×&Ñ& }ÈÐ&ÑJð 	�‰Ð&¨¯©×(CÑ(CÓ(EÕFr   )rQ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú_numba_parallel_test_rT   ra   rg   rj   ru   rˆ   Ú__static_attributes__Ú__classcell__©rW   s   @r   rM   rM   O   s/   ø† à!Ðõ5ò.ò
4ò@ò÷Gð Gr   rM   c                   ó  ^ • \ rS rSrU 4S jr\S 5       r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       rSrU =r$ )ÚTestStencilé†   c                 ó.   >• [         [        U ]
  " U0 UD6  g rZ   )rS   r“   rT   ©rU   rV   rq   rW   s      €r   rT   ÚTestStencil.__init__ˆ   s   ø€ ÜŒk˜4Ò)¨4Ð:°6Ó:r   c                 ób   • S nS nS nSnU R                  X1U5        U R                  X2U5        g)zHTests whether the optional out argument to stencil calls works.
        c                 ó¼   • [         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      n[	        XS9nU$ )Nr1   ©Úout)r}   ÚarangeÚreshapeÚzerosr   ©ÚnÚAÚBs      r   Útest_with_outÚ0TestStencil.test_stencil1.<locals>.test_with_out�   sM   € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—’˜˜A™“×&Ñ&¨ vÓ.ˆAÜ Ñ)ˆAØˆHr   c                 ón   • [         R                  " U S-  5      R                  X 45      n[        U5      nU$ ©Nr1   )r}   rœ   r�   r   rŸ   s      r   Útest_without_outÚ3TestStencil.test_stencil1.<locals>.test_without_out•   ó/   € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ Ó"ˆAØˆHr   c                 ó^  • [         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      n[	        SU S-
  5       HG  n[	        SU S-
  5       H1  nSXUS-   4   XS-   U4   -   XUS-
  4   -   XS-
  U4   -   -  X#U4'   M3     MI     U$ ©Nr1   r   r   ©r}   rœ   r�   rž   r'   ©r    r¡   r¢   r)   Újs        r   Útest_impl_seqÚ0TestStencil.test_stencil1.<locals>.test_impl_seqš   sÂ   € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—’˜˜A™“×&Ñ&¨ vÓ.ˆAÜ˜1˜a !™e–_�Ü˜q ! a¡%ž�AØ" a¨1¨q©5¨¡kØ&'¨A©¨q¨¡kñ'2Ø45¸¸Q¹°h±Kñ'@ØBCÈÁEÈ1ÀHÁ+ñ'Nñ O�A˜�d“Gó )ñ %ð ˆHr   éd   N©rˆ   )rU   r£   r§   r¯   r    s        r   Útest_stencil1ÚTestStencil.test_stencil1‹   s4   € ò	ò	ò
	ð ˆØ�
‰
�=°Ô3Ø�
‰
�=°AÕ6r   c                 óæ  • S nS nSnU R                  X!U5        S nS nSnSnU R                  U[        R                  [        R                  45      nU" X45      nUR	                  X45      n[
        R                  R                  XvSS9  U R                  S	UR                  R                  5       5        S
 nSnU R                  U[        R                  [        R                  [        R                  45      nUR	                  X4U5      n[
        R                  R                  XvSS9  U R                  S	UR                  R                  5       5        S nSnU R                  U[        R                  [        R                  [        R                  45      nUR	                  X4U5      n[
        R                  R                  XvSS9  U R                  S	UR                  R                  5       5        g)zPTests whether the optional neighborhood argument to the stencil
decorate works.
c                 óH   • [         R                  " U 5      n[        U5      nU$ rZ   )r}   rœ   r*   rŸ   s      r   Útest_seqÚ+TestStencil.test_stencil2.<locals>.test_seq¬   s   € Ü—	’	˜!“ˆAÜ Ó"ˆAØˆHr   c                 óÆ   • [         R                  " U 5      n[         R                  " U 5      n[        S[	        U5      5       H  nS[        XS-
  US-    5      -  X#'   M     U$ )Né   r%   r   ©r}   rœ   rž   r'   ÚlenÚsum©r    r¡   r¢   r)   s       r   r¯   Ú0TestStencil.test_stencil2.<locals>.test_impl_seq±   sS   € Ü—	’	˜!“ˆAÜ—’˜“ˆAÜ˜1œc !›fÖ%�ØœS  q¡5¨¨Q© Ó0Ñ0�“ñ &àˆHr   r±   c                 ót   • [         R                  " U 5      nS n[        R                  " X1* U44S9" X!5      nU$ )Nc                 óX   • X*    n[        U* S-   US-   5       H
  nX U   -  nM     SU-  $ ©Nr   r%   r&   ©r   r9   r(   r)   s       r   r*   ÚDTestStencil.test_stencil2.<locals>.test_seq.<locals>.stencil2_kernelÀ   s;   € Ø˜‘e�Ü ˜r A™v q¨1¡uÖ-�AØ˜Q™4‘K’Cñ .à˜S‘yÐ r   r!   ©r}   rœ   rn   r   )r    r9   r¡   r*   r¢   s        r   r·   r¸   ½   s6   € Ü—	’	˜!“ˆAò!ô
 —’˜o¸bÀ!¸W¸KÒHÈÓNˆAØˆHr   c                 óÐ   • [         R                  " U 5      n[         R                  " U 5      n[        U[	        U5      U-
  5       H  nS[        X$U-
  XA-   S-    5      -  X4'   M     U$ )Nr%   r   r»   )r    r9   r¡   r¢   r)   s        r   r¯   r¿   È   sZ   € Ü—	’	˜!“ˆAÜ—’˜“ˆAÜ˜1œc !›f q™jÖ)�ØœS  q¡5¨©°©Ð!3Ó4Ñ4�“ñ *àˆHr   rº   rx   ry   r{   c                 óz   • [         R                  " U 5      nS n[        R                  " XA* U44U* 4S9" X15      nU$ )Nc                 ód   • X* S-      n[        U* S-   US-   5       H  nX US-      -  nM     SU-  $ rÂ   r&   rÃ   s       r   r*   rÄ   Û   sC   € Ø˜˜Q™‘i�Ü ˜r A™v q¨1¡uÖ-�AØ˜Q ™U™8‘O’Cñ .à˜S‘yÐ r   ©r"   Úindex_offsetsrÅ   ©r    r9   Úoffsetr¡   r*   r¢   s         r   r·   r¸   Ø   sB   € Ü—	’	˜!“ˆAò!ô
 —’˜o¸bÀ!¸W¸KØ.4¨W¨Kò9Ø9:ó?ˆAàˆHr   r   c                 óz   • [         R                  " U 5      nS n[        R                  " XA* U44U* 4S9" X15      nU$ )Nc                 óF   • S[         R                  " X* S-   US-    5      -  $ )Nr%   r   r1   )r}   r½   )r   r9   s     r   r*   rÄ   ï   s$   € ØœRŸVšV A b¨1¡f¨Q°©U OÓ4Ñ4Ð4r   rÉ   rÅ   rË   s         r   r·   r¸   ì   s@   € Ü—	’	˜!“ˆAò5ä—’˜o¸bÀ!¸W¸KØ.4¨W¨Kò9Ø9:ó?ˆAàˆHr   N)rˆ   rg   r   Úintpr|   r}   r~   r   r€   r�   r‚   )	rU   r·   r¯   r    r9   rs   r„   r‡   rÌ   s	            r   Útest_stencil2ÚTestStencil.test_stencil2§   s™  € ò
	ò
	ð ˆØ�
‰
�=¨AÔ.ò		ò	ð ˆØˆØ×&Ñ& x´%·*±*¼e¿j¹jÐ1IÓJˆÙ  Ó&ˆà×*Ñ*¨1Ó0ˆÜ
�
‰
×&Ñ& }ÈÐ&ÑJØ�‰Ð&¨¯©×(CÑ(CÓ(EÔFò
	ð ˆØ×&Ñ& x´%·*±*¼e¿j¹jÜ27·*±*ð2>ó ?ˆà×*Ñ*¨1°Ó8ˆÜ
�
‰
×&Ñ& }ÈÐ&ÑJØ�‰Ð&¨¯©×(CÑ(CÓ(EÔFò	ð ˆØ×&Ñ& x´%·*±*¼e¿j¹jÜ27·*±*ð2>ó ?ˆà×*Ñ*¨1°Ó8ˆÜ
�
‰
×&Ñ& }ÈÐ&ÑJØ�‰Ð&¨¯©×(CÑ(CÓ(EÕFr   c                 óL  • S n[        U5      n[        USS9nSnU" U5      nU" U5      nU" U5      nU R                  US   S:H  =(       a    US   S:H  5        U R                  US   S:H  =(       a    US   S:H  5        U R                  US   S:H  =(       a    US   S:H  5        g)	zqTests whether a non-zero optional cval argument to the stencil
decorator works.  Also tests integer result type.
c                 ón   • [         R                  " U S-  5      R                  X 45      n[        U5      nU$ r¦   )r}   rœ   r�   r2   rŸ   s      r   r·   Ú+TestStencil.test_stencil3.<locals>.test_seq  r©   r   TrH   rº   r=   r+   )é   rÕ   N)r   Ú
assertTrue)rU   r·   Ú	test_njitÚtest_parr    Úseq_resÚnjit_resÚpar_ress           r   Útest_stencil3ÚTestStencil.test_stencil3ü   s§   € ò
	ô
 ˜“Nˆ	Ü˜¨4Ñ0ˆàˆÙ˜1“+ˆÙ˜Q“<ˆÙ˜1“+ˆà�‰˜ ™¨Ñ,×E°¸±À#Ñ1EÔFØ�‰˜ ™¨#Ñ-×G°(¸4±.ÀCÑ2GÔHØ�‰˜ ™¨Ñ,×E°¸±À#Ñ1EÕFr   c                 ó8   • S nS nSnU R                  X!U5        g)z1Tests standard indexing with a 1d array.
        c                 óP   • [         R                  " U 5      nSS/n[        X5      nU$ )Nç      @ç      @)r}   rœ   rB   ©r    r¡   r¢   ÚCs       r   r·   Ú?TestStencil.test_stencil_standard_indexing_1d.<locals>.test_seq  s'   € Ü—	’	˜!“ˆAØ�c�
ˆAÜ1°!Ó7ˆAØˆHr   c                 óÀ   • [         R                  " U 5      nSS/n[         R                  " U 5      n[        SU 5       H  nXS-
     US   -  X   US   -  -   X4'   M     U$ )Nrà   rá   r   r   ©r}   rœ   rž   r'   )r    r¡   r¢   rã   r)   s        r   r¯   ÚDTestStencil.test_stencil_standard_indexing_1d.<locals>.test_impl_seq  s^   € Ü—	’	˜!“ˆAØ�c�
ˆAÜ—’˜“ˆAä˜1˜a–[�Ø˜Q™‘x ! A¡$‘¨©°°!±©Ñ4�“ñ !àˆHr   r±   Nr²   ©rU   r·   r¯   r    s       r   Ú!test_stencil_standard_indexing_1dÚ-TestStencil.test_stencil_standard_indexing_1d  s!   € ò	ò	ð ˆØ�
‰
�=¨AÕ.r   c                 ó8   • S nS nSnU R                  X!U5        g)zLTests standard indexing with a 2d array and multiple stencil calls.
        c                 ó°   • [         R                  " U S-  5      R                  X 45      n[         R                  " S5      n[	        X5      n[	        X25      nU$ )Nr1   ©rx   rx   )r}   rœ   r�   ÚonesrD   )r    r¡   r¢   rã   ÚDs        r   r·   Ú?TestStencil.test_stencil_standard_indexing_2d.<locals>.test_seq,  sF   € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—’˜“ˆAÜ1°!Ó7ˆAÜ1°!Ó7ˆAØˆHr   c                 óä  • [         R                  " U S-  5      R                  X 45      n[         R                  " S5      n[         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      n[        SU S-
  5       H\  n[        SU S-
  5       HF  nXUS-   4   US   -  XS-   U4   US   -  -   XUS-
  4   US   -  -   XS-
  U4   US   -  -   X5U4'   MH     M^     [        SU S-
  5       H\  n[        SU S-
  5       HF  nX5US-   4   US   -  X5S-   U4   US   -  -   X5US-
  4   US   -  -   X5S-
  U4   US   -  -   XEU4'   MH     M^     U$ )Nr1   rí   r   r   r   r   r   )r}   rœ   r�   rî   rž   r'   )r    r¡   r¢   rã   rï   r)   r®   s          r   r¯   ÚDTestStencil.test_stencil_standard_indexing_2d.<locals>.test_impl_seq3  sœ  € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—’˜“ˆAÜ—’˜˜A™“×&Ñ&¨ vÓ.ˆAÜ—’˜˜A™“×&Ñ&¨ vÓ.ˆAä˜1˜a !™e–_�Ü˜q ! a¡%ž�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˜�d“Gó )ñ %ô ˜1˜a !™e–_�Ü˜q ! a¡%ž�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˜�d“Gó )ñ %ð ˆHr   rº   Nr²   rè   s       r   Ú!test_stencil_standard_indexing_2dÚ-TestStencil.test_stencil_standard_indexing_2d(  s!   € ò	ò	ð  ˆØ�
‰
�=¨AÕ.r   c                 ób   • S nS nSnU R                  X!U5        S nU R                  X!U5        g)z=Tests whether multiple inputs of the same size work.
        c                 óÀ   • [         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      n[        X5      nU$ r¦   )r}   rœ   r�   r6   râ   s       r   r·   Ú:TestStencil.test_stencil_multiple_inputs.<locals>.test_seqJ  sM   € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ-¨aÓ3ˆAØˆHr   c                 ó   • [         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      n[	        SU S-
  5       Ho  n[	        SU S-
  5       HY  nSXUS-   4   XS-   U4   -   XUS-
  4   -   XS-
  U4   -   X$US-   4   -   X$S-   U4   -   X$US-
  4   -   X$S-
  U4   -   -  X4U4'   M[     Mq     U$ r«   r¬   )r    r¡   r¢   rã   r)   r®   s         r   r¯   Ú?TestStencil.test_stencil_multiple_inputs.<locals>.test_impl_seqP  s'  € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—’˜˜A™“×&Ñ&¨ vÓ.ˆAÜ˜1˜a !™e–_�Ü˜q ! a¡%ž�AØ"Ø˜a !™e˜8™ q¨Q©°¨¡{Ñ2Ø  A¡˜X™;ñ'Ø)*¨q©5°!¨8©ñ5à  A¡˜X™;ñ'à)*¨q©5°!¨8©ñ5ð   A¡˜X™;ñ'ð *+¨q©5°!¨8©ñ5ñ6�A˜�d“Gó )ñ %ð ˆHr   rx   c                 óÆ   • [         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      nSn[        XU5      nU$ )Nr1   r   )r}   rœ   r�   r:   )r    r¡   r¢   r9   rã   s        r   r·   r÷   a  sT   € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAØˆAÜ1°!¸Ó:ˆAØˆHr   Nr²   rè   s       r   Útest_stencil_multiple_inputsÚ(TestStencil.test_stencil_multiple_inputsF  s6   € ò	ò	ð ˆØ�
‰
�=¨AÔ.ò	ð 	�
‰
�=¨AÕ.r   c                 ó8   • S nS nSnU R                  XU5        g )Nc                 ó¾  • [         R                  " U S-  5      R                  X 45      nU S-  [         R                  " U S-  5      R                  X 45      -
  n[         R                  " U [         R                  S9n[         R
                  " X 4UR                  S9n[        SU 5       H1  n[        SU 5       H  nX5U4   (       a  XU4   OX%U4   XEU4'   M      M3     U$ )Nr1   ©Údtyper   )r}   rœ   r�   ÚeyeÚbool_rž   r   r'   )r    r¡   r¢   ÚSÚOr)   r®   s          r   r¯   Ú;TestStencil.test_stencil_mixed_types.<locals>.test_impl_seqk  s»   € Ü—	’	˜!˜q™&Ó!×)Ñ)¨1¨&Ó1ˆAØ�Q‘œŸš 1¨¡6Ó*×2Ñ2°A°6Ó:Ñ:ˆAÜ—’�q¤§¡Ñ)ˆAÜ—’˜!˜ q§w¡wÑ/ˆAÜ˜1˜a–[�Ü˜q !ž�AØ)*¨a¨4¯˜a 1 šg°a¸1¸±g�A˜�d“Gó %ñ !ð ˆHr   c                 ó  • [         R                  " U S-  5      R                  X 45      nU S-  [         R                  " U S-  5      R                  X 45      -
  n[         R                  " U [         R                  S9n[        XU5      nU$ )Nr1   rÿ   )r}   rœ   r�   r  r  r?   )r    r¡   r¢   r  r  s        r   r·   Ú6TestStencil.test_stencil_mixed_types.<locals>.test_sequ  sn   € Ü—	’	˜!˜q™&Ó!×)Ñ)¨1¨&Ó1ˆAØ�Q‘œŸš 1¨¡6Ó*×2Ñ2°A°6Ó:Ñ:ˆAÜ—’�q¤§¡Ñ)ˆAÜ5°a¸AÓ>ˆAØˆHr   rx   r²   )rU   r¯   r·   r    s       r   Útest_stencil_mixed_typesÚ$TestStencil.test_stencil_mixed_typesi  s!   € ò	ò	ð ˆØ�
‰
�=¨AÕ.r   c                 ób   • S nS nS nSnU R                  X1U5        U R                  X2U5        g)z&Tests 2D numba.stencil calls.
        c                 óà   • [         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      n[        R
                  " S 5      " XS9  U$ )Nr1   c                 ó6   • SU S   U S   -   U S   -   U S   -   -  $ r   r   r   s    r   Ú<lambda>ÚCTestStencil.test_stencil_call.<locals>.test_impl1.<locals>.<lambda>†  s-   €  D¨A¨d©G°a¸±gÑ,=ÀÀ%ÁÑ,HØ./°©hñ-7ò %8r   rš   ©r}   rœ   r�   rž   rn   r   rŸ   s      r   Ú
test_impl1Ú1TestStencil.test_stencil_call.<locals>.test_impl1ƒ  s]   € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—’˜˜A™“×&Ñ&¨ vÓ.ˆAÜ�MŠMñ 8ô 9Ø9:òCàˆHr   c                 óè   • [         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      nS n[        R
                  " U5      " U5      nU$ )Nr1   c                 ó6   • SU S   U S   -   U S   -   U S   -   -  $ r   r   r   s    r   ÚsfÚ=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_impl2Ú1TestStencil.test_stencil_call.<locals>.test_impl2Š  s\   € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—’˜˜A™“×&Ñ&¨ vÓ.ˆAòHä—’˜bÔ! !Ó$ˆAØˆHr   c                 ó^  • [         R                  " U S-  5      R                  X 45      n[         R                  " U S-  5      R                  X 45      n[	        SU S-
  5       HG  n[	        SU S-
  5       H1  nSXUS-   4   XS-   U4   -   XUS-
  4   -   XS-
  U4   -   -  X#U4'   M3     MI     U$ r«   r¬   r­   s        r   r¯   Ú4TestStencil.test_stencil_call.<locals>.test_impl_seq“  s¾   € Ü—	’	˜!˜Q™$“×'Ñ'¨¨Ó/ˆAÜ—’˜˜A™“×&Ñ&¨ vÓ.ˆAÜ˜1˜a !™e–_�Ü˜q ! a¡%ž�AØ" a¨1¨q©5¨¡k°A¸!±e¸Q°h±KÑ&?Ø()¨Q°©U¨(©ñ'4Ø67¸A¹¸q¸±kñ'Bñ C�A˜�d“Gó )ñ %ð ˆHr   r±   Nr²   )rU   r  r  r¯   r    s        r   Útest_stencil_callÚTestStencil.test_stencil_call  s4   € ò	ò	ò	ð ˆØ�
‰
�=¨aÔ0Ø�
‰
�=¨aÕ0r   c                 ó8   • S nS nSnU R                  X!U5        g)z&Tests 1D numba.stencil calls.
        c                 ó”   • [         R                  " U 5      n[         R                  " U 5      n[        R                  " S 5      " XS9  U$ )Nc                 ó*   • SU S   U S   -   U S   -   -  $ ©Nr%   r   r   r   r   r   s    r   r  ÚETestStencil.test_stencil_call_1D.<locals>.test_impl.<locals>.<lambda>§  s   €  C¨1¨R©5°1°Q±4©<¸!¸A¹$Ñ+>Ò$?r   rš   ©r}   rœ   rž   rn   r   rŸ   s      r   Ú	test_implÚ3TestStencil.test_stencil_call_1D.<locals>.test_impl¤  s3   € Ü—	’	˜!“ˆAÜ—’˜“ˆAÜ�MŠMÑ?Ô@ÀÒJØˆHr   c                 ó¼   • [         R                  " U 5      n[         R                  " U 5      n[        SU S-
  5       H  nSXS-
     X   -   XS-      -   -  X#'   M     U$ rÂ   ræ   r¾   s       r   r¯   Ú7TestStencil.test_stencil_call_1D.<locals>.test_impl_seqª  sX   € Ü—	’	˜!“ˆAÜ—’˜“ˆAÜ˜1˜a !™e–_�Ø˜a A¡™h¨©™o°°a±%±Ñ8Ñ9�“ñ %àˆHr   r±   Nr²   ©rU   r"  r¯   r    s       r   Útest_stencil_call_1DÚ TestStencil.test_stencil_call_1D   s!   € ò	ò	ð ˆØ�
‰
�=¨QÕ/r   c                 óD  • S nS nS nS nS nSnU R                  U[        R                  45      nU R                  U[        R                  45      nU R                  U[        R                  45      n	U R                  U[        R                  45      n
U" U5      nUR                  U5      nUR                  U5      nU	R                  U5      nU
R                  U5      n[        R
                  R                  XËSS9  [        R
                  R                  XÛSS9  [        R
                  R                  XëSS9  [        R
                  R                  XûSS9  U R                  [        5       nU" S	5        S
S
S
5        U R                  S[        WR                  5      5        U R                  [        [        45       n[        U5      " S	5        S
S
S
5        U R                  S[        UR                  5      5        g
! , (       d  f       NŽ= f! , (       d  f       NE= f)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                 óš   • [         R                  " U 5      n[         R                  " U 5      nSn[        R                  " S 5      " XUS9  U$ )Nr   c                 ó(   • SX*    U S   -   X   -   -  $ ©Nr%   r   r   ©r   Úcs     r   r  ÚITestStencil.test_stencil_call_const.<locals>.test_impl1.<locals>.<lambda>¾  s   €  s¨a°©e°a¸±d©l¸Q¹TÑ.AÒ'Br   rš   r!  ©r    r¡   r¢   r.  s       r   r  Ú7TestStencil.test_stencil_call_const.<locals>.test_impl1º  s:   € Ü—	’	˜!“ˆAÜ—’˜“ˆAØˆAÜ�MŠMÑBÔCÀAÈaÒPØˆHr   c                 óš   • [         R                  " U 5      n[         R                  " U 5      nSn[        R                  " S 5      " XUS9  U$ )Nr1   c                 ó4   • SU SU-
     U S   -   XS-
     -   -  $ ©Nr%   r   r   r   r-  s     r   r  ÚITestStencil.test_stencil_call_const.<locals>.test_impl2.<locals>.<lambda>Æ  s$   € ˜S A a¨!¡e¡H¨q°©t¡O°a¸A¹±hÑ$>Ò?r   rš   r!  r0  s       r   r  Ú7TestStencil.test_stencil_call_const.<locals>.test_impl2Á  sA   € Ü—	’	˜!“ˆAÜ—’˜“ˆAØˆAÜ�MŠMÙ?ôAØABÈ1òNàˆHr   c                 óš   • [         R                  " U 5      n[         R                  " U 5      nSn[        R                  " S 5      " XUS9  U$ )Nr1   c                 ó4   • SX* S-      U S   -   XS-
     -   -  $ r4  r   r-  s     r   r  ÚITestStencil.test_stencil_call_const.<locals>.test_impl3.<locals>.<lambda>Ï  s%   € ˜S A b¨1¡f¡I°°!±Ñ$4°q¸Q¹±xÑ$?Ò@r   rš   r!  r0  s       r   Ú
test_impl3Ú7TestStencil.test_stencil_call_const.<locals>.test_impl3Ê  sA   € Ü—	’	˜!“ˆAÜ—’˜“ˆAØˆAÜ�MŠMÙ@ôBØBCÈAòOàˆHr   c                 ó    • [         R                  " U 5      n[         R                  " U 5      nSnSn[        R                  " S 5      " XUUS9  U$ )Nr   r1   c                 ó4   • SX* U-      U S   -   XU-
     -   -  $ r,  r   )r   r.  Úds      r   r  ÚITestStencil.test_stencil_call_const.<locals>.test_impl4.<locals>.<lambda>Ù  s%   € ˜s a¨¨Q©¡i°!°A±$Ñ&6¸¸q¹5¹Ñ&AÒBr   rš   r!  )r    r¡   r¢   r>  r.  s        r   Ú
test_impl4Ú7TestStencil.test_stencil_call_const.<locals>.test_impl4Ó  sK   € Ü—	’	˜!“ˆAÜ—’˜“ˆAØˆAØˆAÜ�MŠMÙBôDØDEÈ!ØHIòKð ˆHr   c                 óÀ   • [         R                  " U 5      n[         R                  " U 5      nSn[        SU S-
  5       H  nSXU-
     X   -   XU-      -   -  X$'   M     U$ rÂ   ræ   )r    r¡   r¢   r.  r)   s        r   r¯   Ú:TestStencil.test_stencil_call_const.<locals>.test_impl_seqÝ  s]   € Ü—	’	˜!“ˆAÜ—’˜“ˆAØˆAÜ˜1˜a !™e–_�Ø˜a A¡™h¨©™o°°a±%±Ñ8Ñ9�“ñ %àˆHr   r±   rx   ry   rÕ   NzDstencil kernel index is not constant, 'neighborhood' option required)rg   r   rÏ   r|   r}   r~   r   ÚassertRaisesr   r€   ÚstrÚ	exceptionr   r   )rU   r  r  r:  r@  r¯   r    Úcpfunc1Úcpfunc2Úcpfunc3Úcpfunc4r„   Úparfor_output1Úparfor_output2Úparfor_output3Úparfor_output4Úes                    r   Útest_stencil_call_constÚ#TestStencil.test_stencil_call_const´  sÃ  € ò	ò	ò	ò	ò	ð ˆà×'Ñ'¨
´U·Z±Z°MÓBˆØ×'Ñ'¨
´U·Z±Z°MÓBˆØ×'Ñ'¨
´U·Z±Z°MÓBˆØ×'Ñ'¨
´U·Z±Z°MÓBˆÙ  Ó#ˆà ×,Ñ,¨QÓ/ˆØ ×,Ñ,¨QÓ/ˆØ ×,Ñ,¨QÓ/ˆØ ×,Ñ,¨QÓ/ˆÜ
�
‰
×&Ñ& ~ÈÐ&ÑKÜ
�
‰
×&Ñ& ~ÈÐ&ÑKÜ
�
‰
×&Ñ& ~ÈÐ&ÑKÜ
�
‰
×&Ñ& ~ÈÐ&ÑKð ×ÑœÔ/°1Ù�qŒM÷ 0ð 	�‰ð 7Ü8;¸A¿K¹KÓ8Hô	Jð ×Ñ¤¬Ð?Ô@ÀAÜ�Ô˜QÔ÷ Að 	�‰ð 7Ü8;¸A¿K¹KÓ8Hõ	J÷ 0Õ/ú÷ AÕ@ús   Å/	H Ç HÈ 
HÈ
Hc                 ó¤   • S nU R                  U[        R                  SS 4SS9nU R                  SUR                  R                  5       5        g)zFTests 1D numba.stencil calls without parallel translation
turned off.
c                 ó<   • [         R                  " S 5      " U 5      $ )Nc                 ó*   • SU S   U S   -   U S   -   -  $ r  r   r   s    r   r  ÚJTestStencil.test_stencil_parallel_off.<locals>.test_impl.<locals>.<lambda>
  s   € ¨3°!°B±%¸!¸A¹$±,ÀÀ1ÁÑ2EÒ+Fr   )rn   r   )r¡   s    r   r"  Ú8TestStencil.test_stencil_parallel_off.<locals>.test_impl	  s   € Ü—=’=Ñ!FÔGÈÓJÐJr   NF©r   r{   )rg   rn   Úfloat64ÚassertNotInr�   r‚   )rU   r"  rs   s      r   Útest_stencil_parallel_offÚ%TestStencil.test_stencil_parallel_off  sP   € ò
	Kð ×&Ñ& y´5·=±=ÁÐ3CÐ2EØ/4ð 'ð 6ˆà×ÑÐ)¨6¯>©>×+FÑ+FÓ+HÕIr   c                 ó¬   • [        SS9S 5       nS n[        R                  " S5      n[        R                  R	                  U" U5      U" U5      5        g)z6Tests whether nested stencil decorator works.
        TrH   c                 ó.   • [         S 5       nU" U 5      nU$ )Nc                 ó   • SnX* S-      $ )Nr1   r   r   r-  s     r   ÚfunÚ@TestStencil.test_stencil_nested1.<locals>.test_impl.<locals>.fun  s   € à�Ø˜˜a™‘yÐ r   rW  )r    r_  r¢   s      r   r"  Ú3TestStencil.test_stencil_nested1.<locals>.test_impl  s$   € äñ!ó ð!ñ �A“ˆAØˆHr   c                 ó”   • [         R                  " [        U 5      [        S9n[	        S[        U 5      5       H  nXS-
     X'   M     U$ )Nrÿ   r   )r}   rž   r¼   Úintr'   )r    r¢   r)   s      r   r¯   Ú7TestStencil.test_stencil_nested1.<locals>.test_impl_seq  s=   € Ü—’œ˜Q›¤sÑ+ˆAÜ˜1œc !›fÖ%�Ø˜Q™‘x�“ñ &àˆHr   é
   N)r   r}   rœ   r~   Úassert_equalr&  s       r   Útest_stencil_nested1Ú TestStencil.test_stencil_nested1  sL   € ô 
�tÑ	ñ	ó 
ð	ò	ô �IŠI�b‹MˆÜ
�
‰
×Ñ¡	¨!£©m¸AÓ.>Õ?r   c                 ó$  ^• SS/nS nU Hå  n[         R                  " X#S9mU4S jn[        R                  " S5      R	                  S5      n[        R
                  " US5      nX6S	S
S
24'   [        R                  " U5      nT" XWS9  [        R                  R                  Xv5        U R                  U5      nU H2  n	U	R                  5       n
[        R                  R                  X¦5        M4     Mç     [         R                  " USS9mU4S jn[        R                  " S5      R	                  S5      n[        R                  " U5      nU R                  [        5       nT" XWS9  S
S
S
5        SnU R                  U[        WR                  5      5        U R                   U R"                  4 H  n U" US5        [%        S5      e   g
! , (       d  f       Nh= f! [        [&        4 a&  nU R                  U[        U5      5         S
nAM]  S
nAff = f)z.Issue #3518, out kwarg did not work with cval.é   rá   c                 ó   • U S   U S   -
  $ ©Nr=   r   r   r   s    r   ÚkernelÚ1TestStencil.test_out_kwarg_w_cval.<locals>.kernel,  s   € Ø�d‘G˜a ™gÑ%Ð&r   r,   c                  óŠ   >• [         R                  " S5      R                  S5      n [         R                  " U 5      nT" XS9  U$ ©Né   ©rx   rÕ   rš   ©r}   rœ   r�   Ú	ones_like©r¡   ÚretÚ
stencil_fns     €r   ÚwrappedÚ2TestStencil.test_out_kwarg_w_cval.<locals>.wrapped2  s5   ø€ Ü—I’I˜b“M×)Ñ)¨&Ó1�Ü—l’l 1“o�Ù˜1Ò&Ø�
r   rq  rr  r$   r   Nrš   ù              ð?c                  óŠ   >• [         R                  " S5      R                  S5      n [         R                  " U 5      nT" XS9  U$ rp  rs  ru  s     €r   rx  ry  I  s5   ø€ Ü—	’	˜"“×%Ñ% fÓ-ˆAÜ—,’,˜q“/ˆCÙ�qÒ"ØˆJr   z-cval type does not match stencil return type.r   zExpected error was not raised)rn   r   r}   rœ   r�   Ú	full_likert  r~   r   ru   r|   rD  r   r€   rE  rF  rj   rg   ÚAssertionErrorr   )rU   Ú
const_valsrm  Ú	const_valrx  r¡   r„   rv  ÚimplsÚimplÚgotrO  ÚmsgÚcompilerrw  s                 @r   Útest_out_kwarg_w_cvalÚ!TestStencil.test_out_kwarg_w_cval&  s¯  ø€ ð ˜�Xˆ
ò	'ó $ˆIÜŸš vÑ>ˆJõô —	’	˜"“×%Ñ% fÓ-ˆAÜ—|’| A rÓ*ˆHØ'�Rš�U‰OÜ—,’,˜q“/ˆCÙ�qÒ"Ü�J‰J×*Ñ*¨3Ô9ð ×$Ñ$ WÓ.ˆEÛ�Ø×&Ñ&Ó(�Ü—
‘
×.Ñ.¨sÖ=ó ñ' $ô0 —]’] 6°Ñ3ˆ
õ	ô �IŠI�b‹M×!Ñ! &Ó)ˆÜ�lŠl˜1‹oˆØ×ÑœÔ/°1Ù�qÒ"÷ 0à=ˆØ�‰�cœ3˜qŸ{™{Ó+Ô,à×*Ñ*¨D×,AÑ,AÓBˆHðFÙ˜ Ô$ô %Ð%DÓEÐEò C÷ 0Õ/ûô $¤]Ð3ó +Ø—‘˜c¤3 q£6×*Ò*ûð+ús$   ÅGÆ1	GÇ
GÇHÇ)H
È
Hc                 óh  ^
• [         R                  [         R                  [         R                  * [        S5      [        S5      * 4 Hè  nS n[        R
                  " X!S9m
U
4S jn[         R                  " S5      R                  S5      n[         R                  " US5      nXSS	S	24'   [         R                  " U5      nT
" XFS
9  [         R                  R                  Xe5        U R                  U5      nU H2  nUR                  5       n	[         R                  R                  X•5        M4     Mê     g	)úLTest issue #7286 where the cval is a np attr/string-based numerical
constantÚinfc                 ó   • U S   U S   -
  $ rl  r   r   s    r   rm  Ú9TestStencil.test_out_kwarg_w_cval_np_attr.<locals>.kernelc  s   € Ø˜$™ ! D¡'Ñ)Ð*r   r,   c                  óŠ   >• [         R                  " S5      R                  S5      n [         R                  " U 5      nT" XS9  U$ )Nç      (@rr  rš   rs  ru  s     €r   rx  Ú:TestStencil.test_out_kwarg_w_cval_np_attr.<locals>.wrappedh  s5   ø€ Ü—I’I˜c“N×*Ñ*¨6Ó2�Ü—l’l 1“o�Ù˜1Ò&Ø�
r   r�  rr  r$   r   Nrš   )r}   Únanr‰  Úfloatrn   r   rœ   r�   r|  rt  r~   r   ru   r|   )rU   r-   rm  rx  r¡   r„   rv  r€  r�  r‚  rw  s             @r   Útest_out_kwarg_w_cval_np_attrÚ)TestStencil.test_out_kwarg_w_cval_np_attr^  så   ø€ ô —V‘VœRŸV™V¤b§f¡f W¬e°E«l¼UÀ5»\¸MÓJˆDò+ô Ÿš vÑ9ˆJõô —	’	˜#“×&Ñ& vÓ.ˆAÜ—|’| A rÓ*ˆHØ"�Rš�U‰OÜ—,’,˜q“/ˆCÙ�qÒ"Ü�J‰J×*Ñ*¨3Ô9ð ×$Ñ$ WÓ.ˆEÛ�Ø×&Ñ&Ó(�Ü—
‘
×.Ñ.¨sÖ=ó ò- Kr   r   )rŠ   r‹   rŒ   r�   rT   Úskip_unsupportedr³   rÐ   rÜ   ré   ró   rû   r  r  r'  rP  rZ  rg  r…  r‘  r�   r�   r‘   s   @r   r“   r“   †   s5  ø† õ;ð ñ7ó ð7ð6 ñRGó ðRGðh ñGó ðGð* ñ/ó ð/ð* ñ/ó ð/ð: ñ /ó ð /ðD ñ/ó ð/ð* ñ1ó ð1ð@ ñ0ó ð0ð& ñMJó ðMJð^ ñ	Jó ð	Jð ñ@ó ð@ð* ñ5Fó ð5Fðn ñ>ó ö>r   r“   c                   ó^  ^ • \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)\*RV                  " S(5      S) 5       r,S* r-S+ r.S, r/S- r0S. r1S/ r2S0 r3S1 r4S2 r5S3 r6S4 r7S5 r8S6 r9S7 r:S8 r;S9 r<S: r=S; r>S< r?\*RV                  " S=5      S> 5       r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSI rKSJ rLSK rMSL rNSM rOSN rPSO rQSP rRSQ rSSR rTSS rUST rVSU rWSV rXSW rYSX rZSY r[SZ r\S[ r]S\ r^S] r_S^ r`S_ raS` rbSa rcSb rdSc reSd rfSe rgSf rhSg riSh rjSi rkSj rlSk rmSl rnSm ro\*RV                  " Sn5      So 5       rpSp rq\*RV                  " Sn5      Sq 5       rrSr rsSsrtU =ru$ )tÚTestManyStencilsi}  c                 ó.   >• [         [        U ]
  " U0 UD6  g rZ   )rS   r•  rT   r–   s      €r   rT   ÚTestManyStencils.__init__‹  s   ø€ ÜÔ Ò.°Ð?¸Ó?r   c           	      óÖ	  ^^^• UR                  S[        5       5      nUR                  S5      nSn/ m/ m[        S%UU4S jj5       n[        U[        5      (       a  US   n	US   n
US   nOUn	Un
UnS	U0nUR	                  U5        SnU" U	S
5         [        S&0 UD6mT" U6 nSSS5        [        U5      S:X  a  U4S jnOC[        U5      S:X  a  U4S jnO-[        U5      S:X  a  U4S jnO[        S[        U5      -  5      e[        U Vs/ s H  n[        R                  " U5      PM     sn5      nSnU" U
S5         U R                  UU5      nUR                  " U6 nSSS5        SnU" US5         U R                  UU5      nUR                  " U6 nSSS5        U(       a$  [        SU5        [        SU5        [        SU5         U	(       dD  [        R                   R#                  XÒSS9  U R%                  UR&                  UR&                  5         U
(       dE  [        R                   R#                  UUSS9  U R%                  UR&                  UR&                  5         U(       dq  [        R                   R#                  UUSS9  U R%                  UR&                  UR&                  5         U R1                  SWR2                  R5                  5       5        O U(       a  [        S5        T(       a#  T Vs/ s H  nSU-  PM
     nn[9        SU-  5      eT(       aU  T Vs/ s H  nSUS    -  PM     nnS!R;                  T Vs/ s H  nS"U-  PM
     sn5      nS#U-  nS$U-  n[9        UU-   5      eg! , (       d  f       GNÙ= fs  snf ! , (       d  f       GN2= f! , (       d  f       GN= f! [(         aN  nTR+                  S
[-        U5      < S[/        U5      < 345        [        S[/        U5      -  5         SnAGNîSnAff = f! [(         aN  nTR+                  S[-        U5      < S[/        U5      < 345        [        S[/        U5      -  5         SnAGNüSnAff = f! [6         a    Sn[7        U5      ef = f! [(         aN  nTR+                  S[-        U5      < S[/        U5      < 345        [        S[/        U5      -  5         SnAGNøSnAff = fs  snf s  snf s  snf )'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.
rf   Úexpected_exceptionFNc           	   3   óF  >#   •  S v •  U b  TR                  U5        g g ! [         au  nU b<  [        U S5      (       a  U OU /nSnU H  nU[        X%5      -  nM     U(       d  e  S nAg TR                  U[	        U5      < S[        U5      < 345         S nAg S nAff = f7f©NÚ__iter__Fú: ©ÚappendÚ	ExceptionÚhasattrÚ
isinstanceÚtyperE  ©ÚextyÚusecaserO  ÚlextyÚfoundÚexÚshould_failÚshould_not_fails         €€r   ÚerrorhandlerÚ=TestManyStencils.check_against_expected.<locals>.errorhandler©  ó­   øé € ð0Ûð Ñ#Ø×&Ñ& wÕ/ð $øô ó -ØÑ#Ü$+¨D°*×$=Ñ$=™DÀDÀ8�EØ!�EÛ#˜Ø¤¨AÓ!2Ñ2šñ $æ Øô !ð $×*Ñ*Ø Ü˜qž'¤3 q¥6ð#+ð ,÷-ñ -ûð-üó6   ƒB!… ‰B!Ÿ
B©:BÁ#B!Á(,BÂB!ÂBÂB!r   r   ÚparforÚfunc_or_modeú@stencilr   c                 ó   >• T" U 5      $ rZ   r   ©Úarg0Ústencil_func_impls    €r   Úwrap_stencilÚ=TestManyStencils.check_against_expected.<locals>.wrap_stencilÑ  ó   ø€ Ù(¨Ó.Ð.r   r1   c                 ó   >• T" X5      $ rZ   r   ©rµ  Úarg1r¶  s     €r   r·  r¸  Ô  ó   ø€ Ù(¨Ó4Ð4r   rx   c                 ó   >• T" XU5      $ rZ   r   ©rµ  r¼  Úarg2r¶  s      €r   r·  r¸  ×  ó   ø€ Ù(¨°TÓ:Ð:r   ú+Up to 3 arguments can be provided, found %sÚ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

ú%súMThe following implementations should have raised an exception but did not:
%sr   Ú ú%s: Message: %s

úNThe following implementations should not have raised an exception but did:
%s
úErrors were:

%s©NNr   )ÚgetÚdictr   r¢  Úupdater   r¼   Ú
ValueErrorrm   rn   ro   rj   r|   rg   Úprintr}   r~   r   ÚassertEqualr   r   rŸ  r£  rE  r€   r�   r‚   r}  ÚRuntimeErrorÚjoin)rU   rp   r„   rV   rq   rf   r™  ÚDEBUG_OUTPUTr¬  Ú
stencil_exÚnjit_exÚ	parfor_exÚstencil_argsÚstencilfunc_outputr·  rr   r_   r†   Úwrapped_cfuncr‡   Úwrapped_cpfuncrO  rƒ  r€  ÚerrsÚstr1Ústr2rª  r«  r¶  s                              @@@r   Úcheck_against_expectedÚ'TestManyStencils.check_against_expectedŽ  s»  ú€ ð  —*‘*˜Y¬«Ó/ˆØ#ŸZ™ZÐ(<Ó=Ðð ˆð ˆØˆô 
÷	0ó 
ð	0ô& Ð(¬$×/Ñ/Ø+¨IÑ6ˆJØ(¨Ñ0ˆGØ*¨8Ñ4‰Ià+ˆJØ(ˆGØ*ˆIà&¨Ð/ˆØ×Ñ˜GÔ$à!ÐÙ˜* jÕ1Ü 'Ñ 7¨,Ñ 7Ðá!2°DÐ!9Ð÷ 2ô ˆt‹9˜‹>ö/ä�‹Y˜!‹^ö5ä�‹Y˜!‹^ö;ô Ø=Ü�D“	ñóð ô ©dÓ3ªd¨”U—\’\ !–_©dÑ3Ó4ˆàˆÙ˜' 6Õ*Ø ×-Ñ-¨l¸CÓ@ˆMà'×3Ò3°TÐ:ˆK÷ +ð
 ˆÙ˜) YÕ/Ø!×2Ñ2°<ÀÓEˆNà*×6Ò6¸Ð=ˆM÷ 0ö
 ÜÐ(Ð*<Ô=ÜÐ$ kÔ2ÜÐ&¨Ô6ð		2ÞÜ—
‘
×.Ñ.Ø&¸!ð /ñ =à× Ñ  §¡Ð1C×1IÑ1IÔJð	/ÞÜ—
‘
×.Ñ.Ø °1ð /ñ 6à× Ñ  §¡°×1BÑ1BÔCð
	>ÞÜ—
‘
×.Ñ.Ø! 8°Qð /ñ 8à× Ñ  §¡°×1DÑ1DÔEð.Ø—M‘MØ(Ø&×.Ñ.×;Ñ;Ó=õ?ð ö" Ü�&ŒMæÙ%0Ó1¢[ �4˜!”8¡[ˆCÐ1Üð !GØJMñ Nó Oð Oö Ù*9Ó:ª/ Q�T˜A˜a™D”[©/ˆEÐ:Ø—7‘7Ù'6ó8Ú'6 !ð 2ØôÙ'6ñ8ó 9ˆDð/Ø16ñ7ˆDà'¨$Ñ.ˆDÜ˜t d™{Ó+Ð+ð ÷k 2Ö1üò( 4÷ +Ö*ú÷ 0Ö/ûô ó 	2Ø×"Ñ"ØÜ˜!–Wœc !�fð&ð 'ô(ô Ð'¬#¨a«&Ñ0×1Ò1ûð		2ûô ó 	/Ø×"Ñ" F¼¸Q¾ÄÀQÅÐ,HÐ#IÔJÜÐ$¤s¨1£vÑ-×.Ò.ûð	/ûô &ó .ØF�CÜ(¨Ó-Ð-ð.ûô ó 	>Ø×"Ñ"ØÜ˜!–Wœc !�fð&ð 'ô(ô Ð3´c¸!³fÑ<×=Ò=ûð		>üò 2ùò
 ;ùò8sœ   ÂM5Ä NÄ?"NÅ4"NÇ
AN0 ÈAP É#AR Ê0*Q& Ë9SÌ#S!ÍS&Í5
NÎ
NÎ
N-Î0
PÎ:APÐPÐ
Q#ÐAQÑQ#Ñ&Q>Ñ>R Ò
SÒASÓSc                 óÆ  ^^^• UR                  S[        5       5      nUR                  S5      n/ m/ m[        SUU4S jj5       n[        U[        5      (       a  US   nUS   nUS   n	OUnUnUn	SU0n
U
R	                  U5        U" US	5         [        S0 U
D6mT" U6   SSS5        [        U5      S
:X  a  U4S jnOC[        U5      S:X  a  U4S jnO-[        U5      S:X  a  U4S jnO[        S[        U5      -  5      e[        U Vs/ s H  n[        R                  " U5      PM     sn5      nU" US5         U R                  X½5      nUR                  " U6   SSS5        U" U	S5         U R                  X½5      nUR                  " U6   SSS5        T(       a#  T Vs/ s H  nSU-  PM
     nn[        SU-  5      eT(       aU  T Vs/ s H  nSUS   -  PM     nnSR                  T Vs/ s H  nSU-  PM
     sn5      nSU-  nSU-  n[        UU-   5      eg! , (       d  f       GNƒ= fs  snf ! , (       d  f       NÞ= f! , (       d  f       N½= fs  snf s  snf s  snf )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.
rf   r™  Nc           	   3   óF  >#   •  S v •  U b  TR                  U5        g g ! [         au  nU b<  [        U S5      (       a  U OU /nSnU H  nU[        X%5      -  nM     U(       d  e  S nAg TR                  U[	        U5      < S[        U5      < 345         S nAg S nAff = f7fr›  rž  r¤  s         €€r   r¬  Ú7TestManyStencils.check_exceptions.<locals>.errorhandler@  r®  r¯  r   r   r°  r±  r²  r   c                 ó   >• T" U 5      $ rZ   r   r´  s    €r   r·  Ú7TestManyStencils.check_exceptions.<locals>.wrap_stencilg  r¹  r   r1   c                 ó   >• T" X5      $ rZ   r   r»  s     €r   r·  rä  j  r½  r   rx   c                 ó   >• T" XU5      $ rZ   r   r¿  s      €r   r·  rä  m  rÁ  r   rÂ  rÃ  rÄ  rÅ  r   rÆ  rÇ  rÈ  rÉ  rÊ  r   )rË  rÌ  r   r¢  rÍ  r   r¼   rÎ  rm   rn   ro   rj   r|   rg   rÑ  rÒ  )rU   rp   rV   rq   rf   r™  r¬  rÔ  rÕ  rÖ  r×  r·  rr   r_   rÙ  rÚ  rƒ  r€  rÛ  rÜ  rÝ  rª  r«  r¶  s                        @@@r   Úcheck_exceptionsÚ!TestManyStencils.check_exceptions(  sv  ú€ ð  —*‘*˜Y¬«Ó/ˆØ#ŸZ™ZÐ(<Ó=Ðð ˆØˆô 
÷	0ó 
ð	0ô& Ð(¬$×/Ñ/Ø+¨IÑ6ˆJØ(¨Ñ0ˆGØ*¨8Ñ4‰Ià+ˆJØ(ˆGØ*ˆIà&¨Ð/ˆØ×Ñ˜GÔ$á˜* jÕ1Ü 'Ñ 7¨,Ñ 7Ðá˜tÑ$÷ 2ô ˆt‹9˜‹>ö/ä�‹Y˜!‹^ö5ä�‹Y˜!‹^ö;ô Ø=Ü�D“	ñóð ô ©dÓ3ªd¨”U—\’\ !–_©dÑ3Ó4ˆá˜' 6Õ*Ø ×-Ñ-¨lÓ@ˆMà×%Ò% tÑ,÷ +ñ
 ˜) YÕ/Ø!×2Ñ2°<ÓEˆNà×&Ò&¨Ñ-÷ 0ö
 Ù%0Ó1¢[ �4˜!”8¡[ˆCÐ1Üð !GØJMñ Nó Oð Oö Ù*9Ó:ª/ Q�T˜A˜a™D”[©/ˆEÐ:Ø—7‘7Ù'6ó8Ú'6 !ð 2ØôÙ'6ñ8ó 9ˆDð/Ø16ñ7ˆDà'¨$Ñ.ˆDÜ˜t d™{Ó+Ð+ð ÷K 2Ö1üò( 4ç*Õ*ú÷
 0Õ/üò 2ùò
 ;ùò8s<   ÂHÄ	 H-Ä9!H2Å+!IÆIÇ	IÇ,IÈ
H*È2
I É
Ic                 ó|   • [        5       nS US'   S US'   S US'   S US'   UR                  5        H	  u  p4XBU'   M     U$ )NÚ	pyStencilr   r   r°  )rÌ  Úitems)rU   rq   r>  ÚkÚvs        r   Úexception_dictÚTestManyStencils.exception_dictŽ  sK   € Ü‹FˆØˆˆ+‰Øˆˆ)‰Øˆˆ&‰	Øˆˆ(‰Ø—L‘L–N‰DˆAØˆa‹Dñ #àˆr   c                 ó  • UR                  S5      nUS   R                  nUb#  [        U5      [        U5      :w  a  [        S5      eUSS   H0  n[	        US5      (       d  M  XER                  :w  d  M'  [        S5      e   g )Nr"   r   zInvalid neighborhood suppliedr   Úshapez#Input stencil arrays do not commute)rË  rñ  r¼   rÎ  r¡  )rU   rV   rq   r"   Ú
init_shaperr   s         r   Úcheck_stencil_arraysÚ%TestManyStencils.check_stencil_arrays˜  ss   € Ø—z‘z .Ó1ˆØ˜!‘W—]‘]ˆ
ØÑ#Ü�:‹¤# lÓ"3Ó3Ü Ð!@ÓAÐAØ�a�b“ˆAÜ�q˜'×"Ó"Ø§¡Õ(Ü$Ð%JÓKÐKò r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)z	rel indexc                 ó   • U S   $ r<   r   r   s    r   rm  Ú-TestManyStencils.test_basic00.<locals>.kernel¥  ó   € Ø�T‘7ˆNr   c                 ó(  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ ©Nr!   r   rÿ   r   ©ró  r}   Úfullrñ  r£  r'   ©r   r"   Ú_TestManyStencils__retdtypeÚ_TestManyStencils__b0Ú_TestManyStencils__bÚ_TestManyStencils__arm  rU   s         €€r   Ú__kernelÚ/TestManyStencils.test_basic00.<locals>.__kernel«  sŒ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°a±Ð'7Ñ%8�D˜c˜“Nó 0ñ ,ð ˆKr   rq  rx   rÕ   N©r}   rœ   r�   rÞ  ©rU   Ú_TestManyStencils__kernelr   r„   rm  s   `   @r   Útest_basic00ÚTestManyStencils.test_basic00£  sE   ù€ ò	ö	ô �IŠI�b‹M×!Ñ! ! QÓ'ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)úrel index add constc                 ó   • U S   $ ©Nr   r   r   s    r   rm  Ú-TestManyStencils.test_basic01.<locals>.kernel»  rø  r   c                 ó.  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ rú  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic01.<locals>.__kernelÁ  ó�   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°a±Ð'7Ñ%8�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic01ÚTestManyStencils.test_basic01¹  óE   ù€ ò	ö	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   $ )Nr   r   r   s    r   rm  Ú-TestManyStencils.test_basic02.<locals>.kernelÑ  ó   € Ø�U‘8ˆOr   c                 ó(  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ ©Nr!   r   rÿ   r   r   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic02.<locals>.__kernel×  sŒ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°b±Ð'8Ñ%9�D˜c˜“Nó 0ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic02ÚTestManyStencils.test_basic02Ï  óE   ù€ ò	ö	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   $ )Nr   r   r   s    r   rm  Ú-TestManyStencils.test_basic03.<locals>.kernelç  rø  r   c                 ó.  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H6  n[        SU R                  S   S-
  5       H  nXS-   US-   4   X5U4'   M     M8     U$ rú  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic03.<locals>.__kernelí  s�   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡J°¡NÖ3�CØ%&¨Q¡w°°a±Ð'7Ñ%8�D˜c˜“Nó 4ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic03ÚTestManyStencils.test_basic03å  r  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   $ )Nr   r   r   s    r   rm  Ú-TestManyStencils.test_basic04.<locals>.kernelý  r  r   c                 ó(  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ r  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic04.<locals>.__kernel  sŒ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ%&¨R¡x°°q±Ð'8Ñ%9�D˜c˜“Nó 0ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic04ÚTestManyStencils.test_basic04û  r  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   $ )N©r   r   r   r   s    r   rm  Ú-TestManyStencils.test_basic05.<locals>.kernel  r  r   c                 ó.  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ r  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic05.<locals>.__kernel  ó�   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ%&¨R¡x°°q±Ð'8Ñ%9�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic05ÚTestManyStencils.test_basic05  r  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   $ )N©r   r   r   r   s    r   rm  Ú-TestManyStencils.test_basic06.<locals>.kernel)  r  r   c                 ó.  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H6  n[        SU R                  S   S-
  5       H  nXS-   US-   4   X5U4'   M     M8     U$ r  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic06.<locals>.__kernel/  s�   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡J°¡NÖ3�CØ%&¨Q¡w°°b±Ð'8Ñ%9�D˜c˜“Nó 4ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic06ÚTestManyStencils.test_basic06'  r  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   $ )N©r   r   r   r   s    r   rm  Ú-TestManyStencils.test_basic07.<locals>.kernel?  rø  r   c                 ó4  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H6  n[        SU R                  S   S-
  5       H  nXS-   US-   4   X5U4'   M     M8     U$ rú  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic07.<locals>.__kernelE  s”   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CØ%&¨Q¡w°°a±Ð'7Ñ%8�D˜c˜“Nó 4ñ 0ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic07ÚTestManyStencils.test_basic07=  r  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   $ )N©r   r   r   r   s    r   rm  Ú-TestManyStencils.test_basic08.<locals>.kernelU  ó   € Ø�V‘9Ðr   c                 ó(  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ r  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic08.<locals>.__kernel[  óŒ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ%&¨R¡x°°r±Ð'9Ñ%:�D˜c˜“Nó 0ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic08ÚTestManyStencils.test_basic08S  sE   ù€ ò	ö	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   $ )Nr/   r   r   s    r   rm  Ú-TestManyStencils.test_basic09.<locals>.kernelk  r  r   c                 ó.  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ )Nr!   r   rÿ   r   r1   r0   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic09.<locals>.__kernelq  r2  r   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic09ÚTestManyStencils.test_basic09i  r  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   U S   -   $ rl  r   r   s    r   rm  Ú-TestManyStencils.test_basic10.<locals>.kernel�  ó   € Ø�T‘7˜Q˜t™WÑ$Ð$r   c                 óH  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HC  n[        SU R                  S   S-
  5       H   nXS-   US-   4   XS-   US-   4   -   X5U4'   M"     ME     U$ rú  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic10.<locals>.__kernel†  s¥   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡J°¡NÖ3�CØ%&¨Q¡w°°a±Ð'7Ñ%8¸1À1¹WÀcÈAÁgÐ=MÑ;NÑ%N�D˜c˜“Nó 4ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic10ÚTestManyStencils.test_basic10  sE   ù€ ò	%ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   U S   -   $ )Nr   r   r   r   s    r   rm  Ú-TestManyStencils.test_basic11.<locals>.kernel–  s   € Ø�U‘8˜a ™gÑ%Ð%r   c                 óH  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HC  n[        SU R                  S   S-
  5       H   nXS-   US-   4   XS-   US-   4   -   X5U4'   M"     ME     U$ r  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic11.<locals>.__kernel›  s¥   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡J°¡NÖ3�CØ%&¨R¡x°°q±Ð'8Ñ%9¸AÀA¹gÀsÈQÁwÐ>NÑ<OÑ%O�D˜c˜“Nó 4ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic11ÚTestManyStencils.test_basic11”  sE   ù€ ò	&ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   U S   -   $ )Nr.  r7  r   r   s    r   rm  Ú-TestManyStencils.test_basic12.<locals>.kernel«  s   € Ø�U‘8˜a ™hÑ&Ð&r   c                 óN  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HC  n[        SU R                  S   S-
  5       H   nXS-   US-   4   XS-   US-   4   -   X5U4'   M"     ME     U$ r  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic12.<locals>.__kernel°  s©   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CØ%&¨R¡x°°q±Ð'8Ñ%9¸AÀA¹gÀsÈRÁxÐ>OÑ<PÑ%P�D˜c˜“Nó 4ñ 0ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic12ÚTestManyStencils.test_basic12©  óE   ù€ ò	'ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r
  c                 ó   • U S   U S   -   $ )NrG  r?  r   r   s    r   rm  Ú-TestManyStencils.test_basic13.<locals>.kernelÀ  s   € Ø�V‘9˜q ™wÑ&Ð&r   c                 óN  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HC  n[        SU R                  S   S-
  5       H   nXS-   US-   4   XS-   US-   4   -   X5U4'   M"     ME     U$ r  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic13.<locals>.__kernelÅ  s©   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CØ%&¨R¡x°°r±Ð'9Ñ%:¸QÀQ¹wÈÈaÉÐ?OÑ=PÑ%P�D˜c˜“Nó 4ñ 0ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic13ÚTestManyStencils.test_basic13¾  rl  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)ú!rel index add domain change constc                 ó   • U S   S-   $ )Nr=   rz  r   r   s    r   rm  Ú-TestManyStencils.test_basic14.<locals>.kernelÕ  s   € Ø�T‘7˜R‘<Ðr   c                 ó.  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H6  n[        SU R                  S   5       H  nXS-   US-   4   S-   X5U4'   M     M8     U$ ©Nr!   r   rÿ   r   rz  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic14.<locals>.__kernelÚ  s‘   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°a±Ð'7Ñ%8¸4Ñ%?�D˜c˜“Nó 0ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic14ÚTestManyStencils.test_basic14Ó  sE   ù€ ò	 ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)ru  c                 ó   • SnU S   U-   $ )Nrz  r=   r   ©r   Úts     r   rm  Ú.TestManyStencils.test_basic14b.<locals>.kernelê  s   € ØˆAØ�T‘7˜Q‘;Ðr   c                 ó2  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H8  n[        SU R                  S   5       H  nSnXS-   US-   4   U-   X5U4'   M     M:     U$ ry  rû  ©	r   r"   rþ  rÿ  r   r  r€  rm  rU   s	          €€r   r  Ú0TestManyStencils.test_basic14b.<locals>.__kernelð  s–   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ�AØ%&¨Q¡w°°a±Ð'7Ñ%8¸1Ñ%<�D˜c˜“Nó 0ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic14bÚTestManyStencils.test_basic14bè  sE   ù€ ò	ö	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)ztwo rel index, add constc                 ó   • U S   U S   -   S-   $ )Nr=   r   r+   r   r   s    r   rm  Ú-TestManyStencils.test_basic15.<locals>.kernel  ó   € Ø�T‘7˜Q˜t™WÑ$ rÑ)Ð)r   c                 óN  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HF  n[        SU R                  S   S-
  5       H#  nXS-   US-   4   XS-   US-   4   -   S-   X5U4'   M%     MH     U$ ©Nr!   r   rÿ   r   r+   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic15.<locals>.__kernel  ó±   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡J°¡NÖ3�CØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨a©°°q±Ð(8Ñ&9ñ':Ø<?ñ'@�D˜c˜“Nó 4ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic15ÚTestManyStencils.test_basic15ÿ  sE   ù€ ò	*ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)ú&two rel index boundary test, add constc                 ó   • U S   U S   -   S-   $ )Nr=   )r1   r   r+   r   r   s    r   rm  Ú-TestManyStencils.test_basic17.<locals>.kernel  rŠ  r   c                 óN  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HF  n[        SU R                  S   S-
  5       H#  nXS-   US-   4   XS-   US-   4   -   S-   X5U4'   M%     MH     U$ )Nr!   r   rÿ   r   r1   r+   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic17.<locals>.__kernel  rŽ  r   rq  rx   rÕ   Nr  r  s   `   @r   Útest_basic17ÚTestManyStencils.test_basic17  óE   ù€ ò	*ö
	ô �IŠI�b‹M×!Ñ! ! QÓ'ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r’  c                 ó   • U S   U S   -   S-   $ )Nr=   ©r0   r   r+   r   r   s    r   rm  Ú-TestManyStencils.test_basic18.<locals>.kernel-  ó   € Ø�T‘7˜Q˜u™XÑ%¨Ñ*Ð*r   c                 óH  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HC  n[        SU R                  S   5       H#  nXS-   US-   4   XS-   US-   4   -   S-   X5U4'   M%     ME     U$ )Nr!   r   rÿ   r   r1   r0   r+   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic18.<locals>.__kernel2  s­   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨b©°#¸±'Ð(9Ñ&:ñ';Ø=@ñ'A�D˜c˜“Nó 0ñ ,ð ˆKr   rq  rx   rÕ   Nr  r  s   `   @r   Útest_basic18ÚTestManyStencils.test_basic18+  óE   ù€ ò	+ö
	ô �IŠI�b‹M×!Ñ! ! QÓ'ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r’  c                 ó   • U S   U S   -   S-   $ )Nr=   ©r   rx   r+   r   r   s    r   rm  Ú-TestManyStencils.test_basic19.<locals>.kernelC  rŠ  r   c                 óN  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HC  n[        SU R                  S   5       H#  nXS-   US-   4   XS-   US-   4   -   S-   X5U4'   M%     ME     U$ )Nr!   r   rÿ   r   rx   r+   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic19.<locals>.__kernelH  s±   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨a©°°q±Ð(8Ñ&9ñ':Ø<?ñ'@�D˜c˜“Nó 0ñ 0ð ˆKr   rq  rx   rÕ   Nr  r  s   `   @r   Útest_basic19ÚTestManyStencils.test_basic19A  r™  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)r’  c                 ó   • U S   U S   -   S-   $ )Nr=   )r   éýÿÿÿr+   r   r   s    r   rm  Ú-TestManyStencils.test_basic20.<locals>.kernelY  rž  r   c                 óH  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HC  n[        SU R                  S   5       H#  nXS-   US-   4   XS-   US-   4   -   S-   X5U4'   M%     ME     U$ )Nr!   r   rÿ   rx   r   r®  r+   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic20.<locals>.__kernel^  s­   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨a©°°r±Ð(9Ñ&:ñ';Ø=@ñ'A�D˜c˜“Nó 0ñ ,ð ˆKr   rq  rx   rÕ   Nr  r  s   `   @r   Útest_basic20ÚTestManyStencils.test_basic20W  r£  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)zsame rel, add constc                 ó   • U S   U S   -   S-   $ )Nr=   r+   r   r   s    r   rm  Ú-TestManyStencils.test_basic21.<locals>.kernelo  rŠ  r   c                 óH  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HC  n[        SU R                  S   5       H#  nXS-   US-   4   XS-   US-   4   -   S-   X5U4'   M%     ME     U$ rŒ  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic21.<locals>.__kernelt  s­   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨a©°°q±Ð(8Ñ&9ñ':Ø<?ñ'@�D˜c˜“Nó 0ñ ,ð ˆKr   rq  rx   rÕ   Nr  r  s   `   @r   Útest_basic21ÚTestManyStencils.test_basic21m  r™  r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)z%rel idx const expr folding, add constc                 ó   • U S   U S   -   S-   $ )Nr   r=   r+   r   r   s    r   rm  Ú-TestManyStencils.test_basic22.<locals>.kernel…  s   € Ø�X‘;  4¡Ñ(¨2Ñ-Ð-r   c                 óN  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HF  n[        SU R                  S   S-
  5       H#  nXS-   US-   4   XS-   US-   4   -   S-   X5U4'   M%     MH     U$ rŒ  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic22.<locals>.__kernelŠ  rŽ  r   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic22ÚTestManyStencils.test_basic22ƒ  sE   ù€ ò	.ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)zrel idx, work in bodyc                 óV   • [         R                  " SU S   -   5      nU S   U S   -   U-   $ ©Nre  )r1   r   r   r=   ©r}   Úsin©r   rr   s     r   rm  Ú-TestManyStencils.test_basic23.<locals>.kernel›  s0   € Ü—’�r˜A˜d™G‘|Ó$ˆAØ�X‘;  4¡Ñ(¨1Ñ,Ð,r   c           	      óš  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       Hi  n[        SU R                  S   S-
  5       HF  n[        R                  " SXS-   US-   4   -   5      nXS-   US-   4   XS-   US-   4   -   U-   X5U4'   MH     Mk     U$ ©Nr!   r   rÿ   r   r1   re  ©ró  r}   rü  rñ  r£  r'   rÆ  ©	r   r"   rþ  rÿ  r   r  rr   rm  rU   s	          €€r   r  Ú/TestManyStencils.test_basic23.<locals>.__kernel¡  s×   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CÜŸš˜r A¨A¡g¨s°Q©wÐ&6Ñ$7Ñ7Ó8�AØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨a©°°q±Ð(8Ñ&9ñ':Ø<=ñ'>�D˜c˜“Nó 4ñ 0ð
 ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic23ÚTestManyStencils.test_basic23™  sE   ù€ ò	-ö		ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)z,rel idx, dead code should not impact rel idxc                 óP   • [         R                  " SU S   -   5      nU S   U S   -   $ rÄ  rÅ  rÇ  s     r   rm  Ú.TestManyStencils.test_basic23a.<locals>.kernel³  s+   € Ü—’�r˜A˜d™G‘|Ó$ˆAØ�X‘;  4¡Ñ(Ð(r   c           	      ó”  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       Hf  n[        SU R                  S   S-
  5       HC  n[        R                  " SXS-   US-   4   -   5      nXS-   US-   4   XS-   US-   4   -   X5U4'   ME     Mh     U$ rÊ  rË  rÌ  s	          €€r   r  Ú0TestManyStencils.test_basic23a.<locals>.__kernel¹  sÌ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CÜŸš˜r A¨A¡g¨s°Q©wÐ&6Ñ$7Ñ7Ó8�AØ%&¨Q¡w°°a±Ð'7Ñ%8¸1À1¹WÀcÈAÁgÐ=MÑ;NÑ%N�D˜c˜“Nó 4ñ 0ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic23aÚTestManyStencils.test_basic23a±  sE   ù€ ò	)ö	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 ó€   • [         R                  " S5      R                  SS5      nS nU R                  X![        /S9  g)z1d idx on 2d arrrq  rx   rÕ   c                 ó   • U S   S-   $ )Nr   r+   r   r   s    r   rm  Ú-TestManyStencils.test_basic24.<locals>.kernelÌ  s   € Ø�Q‘4˜"‘9Ðr   ©r™  N)r}   rœ   r�   rç  r   ©rU   r   rm  s      r   Útest_basic24ÚTestManyStencils.test_basic24È  s8   € ä�IŠI�b‹M×!Ñ! ! QÓ'ˆò	ð 	×Ñ˜f¼[¸NÐÒKr   c                 óŠ   • [         R                  " S5      R                  SS5      nS nU R                  X![        [
        /S9  g)zno idx on 2d arrrq  rx   rÕ   c                 ó   • g)Nr+   r   r   s    r   rm  Ú-TestManyStencils.test_basic25.<locals>.kernelÕ  s   € Ør   rÚ  N©r}   rœ   r�   rç  rÎ  r   rÛ  s      r   Útest_basic25ÚTestManyStencils.test_basic25Ñ  s@   € ä�IŠI�b‹M×!Ñ! ! QÓ'ˆò	à×Ñ˜f¼ZÜ=Lð=OÐò 	Pr   c                 ó    ^ ^• S mUU 4S jn[         R                  " S5      R                  SSS5      nU" US5      nT R                  TX25        g)z3d arrc                 ó   • U S   U S   -
  S-   $ )N)r   r   r   )r   r   r   r+   r   r   s    r   rm  Ú-TestManyStencils.test_basic26.<locals>.kernelÝ  s   € Ø�W‘:  '¡
Ñ*¨RÑ/Ð/r   c           	      óž  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hn  n[        SU R                  S   S-
  5       HK  n[        SU R                  S   5       H+  nXS-   US-   US-   4   XS-   US-   US-   4   -
  S-   X6XT4'   M-     MM     Mp     U$ )Nr!   r   rÿ   r1   r   r+   rû  )	r   r"   rþ  rÿ  Ú_TestManyStencils__cr   r  rm  rU   s	          €€r   r  Ú/TestManyStencils.test_basic26.<locals>.__kernelâ  s×   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡J°¡NÖ3�CÜ$ Q¨¯©°©
Ö3˜Ø/0°q±¸#À¹'À3ÈÁ7Ð1JÑ/KØ/0°q±¸#À¹'À3ÈÁ7Ð1JÑ/Kñ0Là/2ñ03˜ #˜]Ó+ó  4ó 4ñ ,ð ˆKr   é@   rÕ   é   r1   Nr  r  s   `   @r   Útest_basic26ÚTestManyStencils.test_basic26Ú  sG   ù€ ò	0ö

	ô �IŠI�b‹M×!Ñ! ! Q¨Ó*ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 ó¢   ^ ^• S mUU 4S jn[         R                  " S5      R                  SSSS5      nU" US5      nT R                  TX25        g)z4d arrc                 ó   • U S   U S   -
  S-   $ )N)r   r   r   r   )r   r   r   r   r+   r   r   s    r   rm  Ú-TestManyStencils.test_basic27.<locals>.kernelõ  s   € Ø�Z‘= 1 [¡>Ñ1°BÑ6Ð6r   c                 óð  >• T	R                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H—  n[        SU R                  S   5       Hw  n[        SU R                  S   S-
  5       HT  n[        SU R                  S   5       H4  nXS-   US-   US-   US-   4   XS-   US-   US-   US-   4   -
  S-   X7XeU4'   M6     MV     My     M™     U$ )	Nr!   r   rÿ   r   rx   r1   r   r+   rû  )
r   r"   rþ  rÿ  Ú_TestManyStencils__drè  r   r  rm  rU   s
           €€r   r  Ú/TestManyStencils.test_basic27.<locals>.__kernelû  s  ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CÜ$ Q¨¯©°©
°Q©Ö7˜Ü#(¨¨A¯G©G°A©JÖ#7˜CØ89À¹'À3ÈÁ7Ø:=À¹'À3ÈÁ7ð;Kñ 9Là89À¹'À3ÈÁ7Ø:=À¹'À3ÈÁ8ð;Lñ 9Mñ9Mð 9<ñ	9<˜D c°Ð!3Ó4ó $8ó  8ó 0ñ ,ð ˆKr   é€   rÕ   rë  r1   Nr  r  s   `   @r   Útest_basic27ÚTestManyStencils.test_basic27ó  sI   ù€ ò	7ö	ô  �IŠI�c‹N×"Ñ" 1 a¨¨AÓ.ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óØ   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      R                  [         R                  5      nU" US5      nT R                  TX25        g)ztype widen c                 ó:   • U S   [         R                  " S5      -   $ )Nr=   ç      $@)r}   rX  r   s    r   rm  Ú-TestManyStencils.test_basic28.<locals>.kernel  s   € Ø�T‘7œRŸZšZ¨›_Ñ,Ð,r   c                 óV  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HJ  n[        SU R                  S   5       H*  nXS-   US-   4   [        R                  " S5      -   X5U4'   M,     ML     U$ )Nr!   r   rÿ   r   rù  )ró  r}   rü  rñ  r£  r'   rX  rý  s         €€r   r  Ú/TestManyStencils.test_basic28.<locals>.__kernel  sš   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°a±Ð'7Ñ%8¼2¿:º:ÀdÓ;KÑ%K�D˜c˜“Nó 0ñ ,ð ˆKr   rq  rx   rÕ   N©r}   rœ   r�   ÚastypeÚfloat32rÞ  r  s   `   @r   Útest_basic28ÚTestManyStencils.test_basic28  sT   ù€ ò	-ö	ô �IŠI�b‹M×!Ñ! ! QÓ'×.Ñ.¬r¯z©zÓ:ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 ó”   • [         R                  " S5      R                  SS5      nS nU R                  X![        [
        [        /S9  g)zconst index from func r�  rx   rÕ   c                 óJ   • U S[        [        R                  " S5      5      4   $ )Nr   )rc  r}   Úcosr   s    r   rm  Ú-TestManyStencils.test_basic29.<locals>.kernel)  s   € Ø�QœœBŸFšF 1›I›Ð&Ñ'Ð'r   rÚ  N©r}   rœ   r�   rç  rÎ  r   r   rÛ  s      r   Útest_basic29ÚTestManyStencils.test_basic29%  sC   € ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆò	(à×Ñ˜f¼ZÜ=LÜ=Jð=LÐò 	Mr   c                 óØ   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      R                  [         R                  5      nU" US5      nT R                  TX25        g)zsigned zerosc                 ó   • U S   $ r<   r   r   s    r   rm  Ú-TestManyStencils.test_basic30.<locals>.kernel1  rI  r   c                 ó(  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ rú  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic30.<locals>.__kernel6  rL  r   rq  rx   rÕ   Nrý  r  s   `   @r   Útest_basic30ÚTestManyStencils.test_basic30/  sT   ù€ ò	ö
	ô �IŠI�b‹M×!Ñ! ! QÓ'×.Ñ.¬r¯z©zÓ:ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óØ   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      R                  [         R                  5      nU" US5      nT R                  TX25        g)zdoes a const propagate? 2Dc                 ó   • SnXS4   $ ©Nr   r   r   r  s     r   rm  Ú-TestManyStencils.test_basic31.<locals>.kernelF  s   € ØˆAØ˜�T‘7ˆNr   c                 ó2  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H8  n[        SU R                  S   S-
  5       H  nSnXU-   US-   4   X5U4'   M     M:     U$ rú  rû  rƒ  s	          €€r   r  Ú/TestManyStencils.test_basic31.<locals>.__kernelL  s•   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡J°¡NÖ3�CØ�AØ%&¨Q¡w°°a±Ð'7Ñ%8�D˜c˜“Nó 4ñ ,ð ˆKr   rq  rx   rÕ   Nrý  r  s   `   @r   Útest_basic31ÚTestManyStencils.test_basic31D  sT   ù€ ò	ö	ô �IŠI�b‹M×!Ñ! ! QÓ'×.Ñ.¬r¯z©zÓ:ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   z constant folding not implementedc                 óV   • [         R                  " S5      R                  SS5      nS ng)zdoes a const propagate?r�  rx   rÕ   c                 ó   • SnSU-
  nXS4   $ r  r   )r   Úsr€  s      r   rm  Ú.TestManyStencils.test_basic31b.<locals>.kernel_  s   € ØˆAØ�A‘ˆAØ˜�T‘7ˆNr   N)r}   rœ   r�   rÛ  s      r   Útest_basic31bÚTestManyStencils.test_basic31bZ  s#   € ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆó	r   c                 ó~   ^ ^• S mUU 4S jn[         R                  " S5      nU" US5      nT R                  TX25        g)zdoes a const propagate? 1Dc                 ó   • SnX   $ rF   r   r  s     r   rm  Ú.TestManyStencils.test_basic31c.<locals>.kernelh  s   € ØˆAØ‘4ˆKr   c                 óæ   >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H  nSnXU-      X44'   M     U$ rú  rû  )r   r"   rþ  rÿ  r  r€  rm  rU   s         €€r   r  Ú0TestManyStencils.test_basic31c.<locals>.__kerneln  sp   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ø�Ø Q™w™Z��T“
ñ 0ð ˆKr   r�  N©r}   rœ   rÞ  r  s   `   @r   Útest_basic31cÚTestManyStencils.test_basic31cf  s8   ù€ ò	ö	ô �IŠI�c‹NˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 ó”   • [         R                  " S5      R                  SS5      nS nU R                  X![        [
        [        /S9  g)ztyped int indexr�  rx   rÕ   c                 ó8   • U [         R                  " S5      S4   $ r  )r}   Úint8r   s    r   rm  Ú-TestManyStencils.test_basic32.<locals>.kernel  s   € Ø”R—W’W˜Q“Z �]Ñ#Ð#r   rÚ  Nr  rÛ  s      r   Útest_basic32ÚTestManyStencils.test_basic32{  sC   € ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆò	$à×Ñ˜f¼ZÜ=LÜ=Jð=LÐò 	Mr   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)zadd 0d arrayc                 ó:   • U S   [         R                  " S5      -   $ )Nr=   r   )r}   Úarrayr   s    r   rm  Ú-TestManyStencils.test_basic33.<locals>.kernel‡  s   € Ø�T‘7œRŸXšX a›[Ñ(Ð(r   c                 óV  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       HJ  n[        SU R                  S   5       H*  nXS-   US-   4   [        R                  " S5      -   X5U4'   M,     ML     U$ rú  )ró  r}   rü  rñ  r£  r'   r.  rý  s         €€r   r  Ú/TestManyStencils.test_basic33.<locals>.__kernelŒ  s™   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°a±Ð'7Ñ%8¼2¿8º8ÀA»;Ñ%F�D˜c˜“Nó 0ñ ,ð ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic33ÚTestManyStencils.test_basic33…  sE   ù€ ò	)ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)z<More complex rel index with dependency on addition rel indexc                 ól   • SU S   -   nXS   U S   -   U S   -   [         R                  " U S   5      -   -   $ )Nç      @r   r   r   rœ  rÅ  )r   Úgs     r   rm  Ú-TestManyStencils.test_basic34.<locals>.kernel›  s@   € Ø�Q�t‘W‘ˆAØ˜$™ ! D¡'Ñ)¨A¨e©HÑ4´r·v²v¸aÀ¹hÓ7GÑGÑHÐHr   c           
      óÎ  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       Hƒ  n[        SU R                  S   S-
  5       H`  nSXS-   US-   4   -   nX`US-   US-   4   XS-   US-   4   -   XS-   US-   4   -   [        R                  " XS-   US-   4   5      -   -   X5U4'   Mb     M…     U$ )	Nr!   r   rÿ   r   r1   r6  r   r0   rË  )	r   r"   rþ  rÿ  r   r  r7  rm  rU   s	          €€r   r  Ú/TestManyStencils.test_basic34.<locals>.__kernel¡  s
  ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CØ˜a a¡¨¨q©Ð 0Ñ1Ñ1�AØ%&¨C°!©G°S¸1±WÐ,<Ñ*=Ø*+°!©G°S¸1±WÐ,<Ñ*=ñ+>à*+°!©G°S¸2±XÐ,=Ñ*>ñ+?ô +-¯&ª&°¸±8¸SÀ1¹WÐ3DÑ1EÓ*Fñ+Gñ &H�D˜c˜“Nó 4ñ 0ð ˆKr   é�   rq  Nr  r  s   `   @r   Útest_basic34ÚTestManyStencils.test_basic34™  sF   ù€ ò	Iö	ô �IŠI�c‹N×"Ñ" 2 rÓ*ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 ó    ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX2SS0S	9  g)
z<simple cval where cval is int but castable to dtype of floatc                 ó   • U S   $ r  r   r   s    r   rm  Ú-TestManyStencils.test_basic35.<locals>.kernel´  rø  r   c                 ó.  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ )Nr!   rº   rÿ   r   r   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic35.<locals>.__kernel¹  r  r   r�  rx   rÕ   Nr-   rº   ©rf   r  r  s   `   @r   Útest_basic35ÚTestManyStencils.test_basic35²  sN   ù€ ò	ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÀ&È!ÀÐ#ÒMr   c                 ó    ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX2SS0S	9  g)
zmore complex with cvalc                 ó0   • U S   U S   -   U S   -   U S   -   $ ©Nr   r   r7  r   r   s    r   rm  Ú-TestManyStencils.test_basic36.<locals>.kernelÈ  ó'   € Ø�T‘7˜Q˜u™XÑ%¨¨%©Ñ0°1°U±8Ñ;Ð;r   c                 ó‚  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H]  n[        SU R                  S   S-
  5       H:  nXS-   US-   4   XS-   US-   4   -   XS-   US-   4   -   XS-   US-   4   -   X5U4'   M<     M_     U$ )Nr!   g      @rÿ   r   r   r   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic36.<locals>.__kernelÍ  sÞ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 C¬t°JÓ/?Ñ@ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨a©°°r±Ð(9Ñ&:ñ';à&'¨a©°°r±Ð(9Ñ&:ñ';ð '(¨a©°°r±Ð(9Ñ&:ñ';�D˜c˜“Nó 4ñ 0ð ˆKr   r�  rx   rÕ   Nr-   rº   rC  r  r  s   `   @r   Útest_basic36ÚTestManyStencils.test_basic36Æ  sN   ù€ ò	<ö

	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÀ&È!ÀÐ#ÒMr   c                 ó    ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX2SS0S	9  g)
zcval is exprc                 ó0   • U S   U S   -   U S   -   U S   -   $ rH  r   r   s    r   rm  Ú-TestManyStencils.test_basic37.<locals>.kernelß  rJ  r   c                 ó‚  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H]  n[        SU R                  S   S-
  5       H:  nXS-   US-   4   XS-   US-   4   -   XS-   US-   4   -   XS-   US-   4   -   X5U4'   M<     M_     U$ )Nr!   ç      Q@rÿ   r   r   r   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic37.<locals>.__kernelä  óÞ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 D´°ZÓ0@ÑAˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨a©°°r±Ð(9Ñ&:ñ';à&'¨a©°°r±Ð(9Ñ&:ñ';ð '(¨a©°°r±Ð(9Ñ&:ñ';�D˜c˜“Nó 4ñ 0ð ˆKr   r�  rx   rÕ   Nr-   rS  rC  r  r  s   `   @r   Útest_basic37ÚTestManyStencils.test_basic37Ý  sT   ù€ ò	<ö

	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HØ-3°WÐ,=ð 	$ò 	?r   c                 ó¶   • S n[         R                  " S5      R                  SS5      nU R                  [        [        [        S9nU R                  XSS0US9  g	)
zcval is complexc                 ó0   • U S   U S   -   U S   -   U S   -   $ rH  r   r   s    r   rm  Ú-TestManyStencils.test_basic38.<locals>.kernel÷  rJ  r   r�  rx   rÕ   ©r   r°  r   r-   rz  ©rf   r™  N©r}   rœ   r�   rî  r   rç  ©rU   rm  r   r©  s       r   Útest_basic38ÚTestManyStencils.test_basic38õ  s_   € ò	<ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆØ× Ñ Ü#Ü"Ü ð !ð "ˆð 	×Ñ˜f°&¸#°Ø13ð 	ò 	5r   c                 óþ   ^ ^^• S m[         R                  " S5      [         R                  " S5      -   mUUU 4S jn[         R                  " S5      R	                  SS5      nU" US5      nT R                  TX2S	T0S
9  g)zcval is func exprc                 ó0   • U S   U S   -   U S   -   U S   -   $ rH  r   r   s    r   rm  Ú-TestManyStencils.test_basic39.<locals>.kernel  rJ  r   rà   r1   c                 ó‚  >• TR                  XS9  T" U 5      n[        R                  " U R                  T[	        U5      S9n[        SU R                  S   S-
  5       H]  n[        SU R                  S   S-
  5       H:  nXS-   US-   4   XS-   US-   4   -   XS-   US-   4   -   XS-   US-   4   -   X5U4'   M<     M_     U$ )Nr!   rÿ   r   r   r   rû  )	r   r"   rþ  rÿ  r   r  r-   rm  rU   s	         €€€r   r  Ú/TestManyStencils.test_basic39.<locals>.__kernel  rU  r   r�  rx   rÕ   Nr-   rC  )r}   rÆ  r  rœ   r�   rÞ  )rU   r  r   r„   r-   rm  s   `   @@r   Útest_basic39ÚTestManyStencils.test_basic39  so   ú€ ò	<ô �vŠv�b‹zœBŸFšF 1›IÑ%ˆ÷

	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HØ-3°T¨Nð 	$ò 	<r   c                 óì   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#S5      nT R                  TXBU5        g)z2 args!c                 ó   • U S   US   -   $ ©Nr   )r   r0   r   r4   s     r   rm  Ú-TestManyStencils.test_basic40.<locals>.kernel  ó   € Ø�T‘7˜Q˜u™XÑ%Ð%r   c                 óJ  >• TR                  XUS9  T" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H@  n[        SU R                  S   5       H   nXS-   US-   4   XS-   US-   4   -   XFU4'   M"     MB     U$ )Nr!   r   rÿ   r1   r   r0   rû  ©	r   r5   r"   rþ  rÿ  r   r  rm  rU   s	          €€r   r  Ú/TestManyStencils.test_basic40.<locals>.__kernel#  s§   ø€ Ø×%Ñ% a¸Ð%ÑFÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°a±Ð'7Ñ%8¸1À1¹WÀcÈBÁhÐ=NÑ;OÑ%O�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   Nr  ©rU   r  r   r5   r„   rm  s   `    @r   Útest_basic40ÚTestManyStencils.test_basic40  sa   ù€ ò	&ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A $Ó'ˆØ×#Ñ# F¨H¸Õ;r   c                 óØ   • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU R                  XU[        [
        /S9  g)	z(2 args! rel arrays wildly not same size!c                 ó   • U S   US   -   $ rj  r   r4   s     r   rm  Ú-TestManyStencils.test_basic41.<locals>.kernel3  rl  r   r�  rx   rÕ   r+   r   rÚ  N©r}   rœ   r�   rç  rÎ  r}  ©rU   rm  r   r5   s       r   Útest_basic41ÚTestManyStencils.test_basic411  ó]   € ò	&ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�b‹M×!Ñ! ! QÓ'ˆØ×Ñ˜f¨Ä
Ü@Nð@PÐò 	Qr   c                 óØ   • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU R                  XU[        [
        /S9  g)z%2 args! rel arrays very close in sizec                 ó   • U S   US   -   $ rj  r   r4   s     r   rm  Ú-TestManyStencils.test_basic42.<locals>.kernel<  rl  r   r�  rx   rÕ   ç      "@rÚ  Nrv  rw  s       r   Útest_basic42ÚTestManyStencils.test_basic42:  rz  r   c                 óì   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#S5      nT R                  TXBU5        g)z2 args more complexityc                 ó0   • U S   U S   -   US   -   US   -   $ )Nr   ©r   r1   rœ  r   r   r4   s     r   rm  Ú-TestManyStencils.test_basic43.<locals>.kernelE  s'   € Ø�T‘7˜Q˜t™WÑ$ q¨¡xÑ/°!°E±(Ñ:Ð:r   c                 ó„  >• TR                  XUS9  T" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H]  n[        SU R                  S   S-
  5       H:  nXS-   US-   4   XS-   US-   4   -   XS-   US-   4   -   XS-   US-   4   -   XFU4'   M<     M_     U$ )Nr!   r   rÿ   r   r1   r0   r   rû  rn  s	          €€r   r  Ú/TestManyStencils.test_basic43.<locals>.__kernelJ  sà   ø€ Ø×%Ñ% a¸Ð%ÑFÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨a©°°q±Ð(8Ñ&9ñ':à&'¨b©°#¸±'Ð(9Ñ&:ñ';ð '(¨a©°°r±Ð(9Ñ&:ñ';�D˜c˜“Nó 4ñ 0ð ˆKr   g      >@rº   é   Nr  rp  s   `    @r   Útest_basic43ÚTestManyStencils.test_basic43C  sa   ù€ ò	;ö

	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A $Ó'ˆØ×#Ñ# F¨H¸Õ;r   c                 óØ   • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU R                  XU[        [
        /S9  g)z!2 args, has assignment before usec                 ó   • SU S'   U S   $ )Nrq  r   r   r4   s     r   rm  Ú-TestManyStencils.test_basic44.<locals>.kernel]  s   € ØˆAˆd‰GØ�T‘7ˆNr   r�  rx   rÕ   rÚ  N©r}   rœ   r�   rç  r   r   rw  s       r   Útest_basic44ÚTestManyStencils.test_basic44[  s_   € ò	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆØ×Ñ˜f¨ÄÜ@Mð@OÐò 	Pr   c                 óØ   • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU R                  XU[        [
        /S9  g)z02 args, has assignment and then cross dependencyc                 ó"   • SU S'   U S   U S   -   $ )Nrq  r   r   r   r4   s     r   rm  Ú-TestManyStencils.test_basic45.<locals>.kernelg  s   € ØˆAˆd‰GØ�T‘7˜Q˜t™WÑ$Ð$r   r�  rx   rÕ   rÚ  Nr�  rw  s       r   Útest_basic45ÚTestManyStencils.test_basic45e  ó_   € ò	%ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆØ×Ñ˜f¨ÄÜ@Mð@OÐò 	Pr   c                 óØ   • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU R                  XU[        [
        /S9  g)z#2 args, has cross relidx assignmentc                 ó(   • US   U S'   U S   U S   -   $ )Nrƒ  r   r   r   r4   s     r   rm  Ú-TestManyStencils.test_basic46.<locals>.kernelq  s"   € Ø˜‘gˆAˆd‰GØ�T‘7˜Q˜t™WÑ$Ð$r   r�  rx   rÕ   rÚ  Nr�  rw  s       r   Útest_basic46ÚTestManyStencils.test_basic46o  r•  r   c                 ó:  ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#US5      nT R                  TXRX45        g)z3 argsc                 ó$   • U S   US   -   US   -   $ )Nr   r   r   r   ©r   r5   r.  s      r   rm  Ú-TestManyStencils.test_basic47.<locals>.kernel{  s   € Ø�T‘7˜Q˜t™WÑ$ q¨¡xÑ/Ð/r   c                 ól  >• T	R                  XX#S9  T" XU5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HP  n[        SU R                  S   S-
  5       H-  nXS-   US-   4   XS-   US-   4   -   X'S-   US-   4   -   XWU4'   M/     MR     U$ r  rû  ©
r   r5   r.  r"   rþ  rÿ  r   r  rm  rU   s
           €€r   r  Ú/TestManyStencils.test_basic47.<locals>.__kernel�  sÈ   ø€ Ø×%Ñ% a¨AÐ%ÑIÙ  a›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CØ&'¨a©°°q±Ð(8Ñ&9Ø&'¨a©°°q±Ð(8Ñ&9ñ':à&'¨b©°#¸±'Ð(9Ñ&:ñ';�D˜c˜“Nó 4ñ 0ð
 ˆKr   r�  rx   rÕ   Nr  ©rU   r  r   r5   r.  r„   rm  s   `     @r   Útest_basic47ÚTestManyStencils.test_basic47y  s}   ù€ ò	0ö		ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A ! TÓ*ˆØ×#Ñ# F¨H¸Õ>r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)z22 args, has assignment before use via memory aliasc                 ó:   • U R                   nSUS S 2S S 24'   U S   $ )Nre  r   )ÚTr-  s     r   rm  Ú-TestManyStencils.test_basic48.<locals>.kernel–  s!   € Ø—‘ˆAØˆAŠa’ˆd‰GØ�T‘7ˆNr   c                 ó\  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HJ  n[        SU R                  S   5       H*  nU R                  nSUS S 2S S 24'   XS-   US-   4   X5U4'   M,     ML     U$ )Nr!   r   rÿ   r   re  )ró  r}   rü  rñ  r£  r'   r§  )	r   r"   rþ  rÿ  r   r  r.  rm  rU   s	          €€r   r  Ú/TestManyStencils.test_basic48.<locals>.__kernelž  s¦   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØŸ™�AØ �A’aš�d‘GØ%&¨Q¡w°°a±Ð'7Ñ%8�D˜c˜“Nó 0ñ 0ð
 ˆKr   r�  rx   rÕ   Nr  r  s   `   @r   Útest_basic48ÚTestManyStencils.test_basic48”  sE   ù€ ò	ö		ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óî   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#S5      nT R                  TXBUSS0S	9  g)
z#2 args, standard_indexing on secondc                 ó   • U S   US   -   $ )Nr   r¦  r   r4   s     r   rm  Ú-TestManyStencils.test_basic49.<locals>.kernel°  rY  r   c                 ó:  >• TR                  XS9  T" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H9  n[        SU R                  S   5       H  nXS-   US-   4   US   -   XFU4'   M     M;     U$ )Nr!   r   rÿ   r   r¦  rû  rn  s	          €€r   r  Ú/TestManyStencils.test_basic49.<locals>.__kernelµ  s™   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°a±Ð'7Ñ%8¸1¸T¹7Ñ%B�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   Nr@   r5   rC  r  rp  s   `    @r   Útest_basic49ÚTestManyStencils.test_basic49®  sq   ù€ ò	%ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A $Ó'ˆØ×#Ñ# F¨H¸Ø-@À#Ð,Fð 	$ò 	Hr   z&dynamic range checking not implementedc                 ó
   • S ng)z2 args, standard_indexing OOBc                 ó   • U S   US   -   $ )Nr   )r   é   r   r4   s     r   rm  Ú-TestManyStencils.test_basic50.<locals>.kernelÈ  rl  r   Nr   ©rU   rm  s     r   Útest_basic50ÚTestManyStencils.test_basic50Å  s   € ó	&r   c                 óâ   • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU R                  XUSSS/0[        [
        /S9  g	)
z$2 args, standard_indexing, no relidxc                 ó   • U S   US   -   $ ©Nr   )r   r1   r   r4   s     r   rm  Ú-TestManyStencils.test_basic51.<locals>.kernelÎ  rY  r   r�  rx   rÕ   r@   r   r5   r\  Nrá  rw  s       r   Útest_basic51ÚTestManyStencils.test_basic51Ì  sg   € ò	%ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆØ×Ñ˜f¨Ø':¸SÀ#¸JÐ&GÜ2<¼oÐ1Nð 	ò 	Pr   c           	      ó<  ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#US5      nT R                  TXRX4S	S
0S9  g)z(3 args, standard_indexing on middle arg c                 ó$   • U S   US   -   US   -   $ )Nr   rƒ  r   r�  s      r   rm  Ú-TestManyStencils.test_basic52.<locals>.kernelØ  s   € Ø�T‘7˜Q˜t™WÑ$ q¨¡wÑ.Ð.r   c                 ó^  >• T	R                  XUS9  T" XU5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HI  n[        SU R                  S   S-
  5       H&  nXS-   US-   4   US   -   X'S-   US-   4   -   XWU4'   M(     MK     U$ )Nr!   r   rÿ   r   r1   r   rû  r   s
           €€r   r  Ú/TestManyStencils.test_basic52.<locals>.__kernelÝ  s¹   ø€ Ø×%Ñ% a¸Ð%ÑFÙ  a›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ3�CØ&'¨a©°°q±Ð(8Ñ&9¸A¸d¹GÑ&CØ&'¨a©°°q±Ð(8Ñ&9ñ':�D˜c˜“Nó 4ñ 0ð ˆKr   r�  rx   rÕ   r6  r1   Nr@   r5   rC  r  r¢  s   `     @r   Útest_basic52ÚTestManyStencils.test_basic52Ö  s�   ù€ ò	/ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�b‹M×!Ñ! ! QÓ'ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A ! TÓ*ˆØ×#Ñ# F¨H¸Ø-@À#Ð,Fð 	$ò 	Hr   c                 ó  • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU R                  [        [
        [        S9nU R                  XUSS0US9  g	)
z92 args, standard_indexing on variable that does not existc                 ó   • U S   US   -   $ r½  r   r4   s     r   rm  Ú-TestManyStencils.test_basic53.<locals>.kernelð  rY  r   r�  rx   rÕ   r[  r@   r.  r\  N)r}   rœ   r�   rî  r   r   rç  ©rU   rm  r   r5   r©  s        r   Útest_basic53ÚTestManyStencils.test_basic53î  s}   € ò	%ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆØ× Ñ ÜÜ"Üð !ð ˆð 	×Ñ˜f¨Ð5HÈ#Ð4NØ13ð 	ò 	5r   c                 óî   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#S5      nT R                  TXBUSS0S	9  g)
z)2 args, standard_indexing, index from varc                 ó    • SnU S   USU4   -   $ )Nr1   r   r   r   )r   r5   r€  s      r   rm  Ú-TestManyStencils.test_basic54.<locals>.kernelý  s   € ØˆAØ�T‘7˜Q˜q !˜t™WÑ$Ð$r   c                 óB  >• T	R                  XS9  T" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H=  n[        SU R                  S   5       H  nSnXS-   US-   4   USU4   -   XFU4'   M     M?     U$ ©Nr!   r   rÿ   r   r1   rû  )
r   r5   r"   rþ  rÿ  r   r  r€  rm  rU   s
           €€r   r  Ú/TestManyStencils.test_basic54.<locals>.__kernel  s¢   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ�AØ%&¨Q¡w°°a±Ð'7Ñ%8¸1¸QÀ¸T¹7Ñ%B�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   Nr@   r5   rC  r  rp  s   `    @r   Útest_basic54ÚTestManyStencils.test_basic54û  sq   ù€ ò	%ö	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A $Ó'ˆØ×#Ñ# F¨H¸Ø-@À#Ð,Fð 	$ò 	Hr   c                 óî   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#S5      nT R                  TXBUSS0S	9  g)
z62 args, standard_indexing, index from more complex varc                 ó*   • SnSU-
  nU S   USU4   -   $ )Nr   r1   r   r   r   )r   r5   r  r€  s       r   rm  Ú-TestManyStencils.test_basic55.<locals>.kernel  s'   € ØˆAØ�A‘ˆAØ�T‘7˜Q˜q !˜t™WÑ$Ð$r   c                 óL  >• T
R                  XS9  T	" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HB  n[        SU R                  S   5       H"  nSnSU-
  nXS-   US-   4   USU4   -   XFU4'   M$     MD     U$ rÒ  rû  )r   r5   r"   rþ  rÿ  r   r  r  r€  rm  rU   s            €€r   r  Ú/TestManyStencils.test_basic55.<locals>.__kernel  s«   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ�AØ˜A™�AØ%&¨Q¡w°°a±Ð'7Ñ%8¸1¸QÀ¸T¹7Ñ%B�D˜c˜“Nó 0ñ 0ð
 ˆKr   r�  rx   rÕ   Nr@   r5   rC  r  rp  s   `    @r   Útest_basic55ÚTestManyStencils.test_basic55  sq   ù€ ò	%ö		ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A $Ó'ˆØ×#Ñ# F¨H¸Ø-@À#Ð,Fð 	$ò 	Hr   c                 óî   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#S5      nT R                  TXBUSS0S	9  g)
z,2 args, standard_indexing, added complexity c                 ób   • SnSnUSS S 24    H  nX4-  nM	     SU-
  S-
  nU S   USU4   -   U-   $ )Nr   r   r1   r   r   )r   r5   r  Úaccrì  r€  s         r   rm  Ú-TestManyStencils.test_basic56.<locals>.kernel/  sN   € ØˆAØˆCØ�qš!�t”W�Ø‘’ñ à�A‘˜‘	ˆAØ�T‘7˜Q˜q !˜t™WÑ$ sÑ*Ð*r   c                 ó„  >• TR                  XS9  T" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H^  n[        SU R                  S   5       H>  nSnSnUSS S 24    H  n	X‰-  nM	     SU-
  S-
  n
XS-   US-   4   USU
4   -   U-   XFU4'   M@     M`     U$ rÒ  rû  )r   r5   r"   rþ  rÿ  r   r  r  rß  rì  r€  rm  rU   s              €€r   r  Ú/TestManyStencils.test_basic56.<locals>.__kernel9  sÒ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ�AØ�CØ ¢A˜vœY˜Ø™šñ 'à˜A™ ™	�AØ%&¨Q¡w°°a±Ð'7Ñ%8¸1¸QÀ¸T¹7Ñ%BÀSÑ%H�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   Nr@   r5   rC  r  rp  s   `    @r   Útest_basic56ÚTestManyStencils.test_basic56-  sq   ù€ ò	+ö	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A $Ó'ˆØ×#Ñ# F¨H¸Ø-@À#Ð,Fð 	$ò 	Hr   c                 óî   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#S5      nT R                  TXBUSS0S	9  g)
z12 args, standard_indexing, split index operation c                 ó"   • US   nU S   US   -   $ )Nr   r   r   r   r�  s      r   rm  Ú-TestManyStencils.test_basic57.<locals>.kernelO  s   € Ø�!‘ˆAØ�T‘7˜Q˜q™T‘>Ð!r   c                 óD  >• T	R                  XS9  T" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H>  n[        SU R                  S   5       H  nUS   nXS-   US-   4   US   -   XFU4'   M      M@     U$ rú  rû  ©
r   r5   r"   rþ  rÿ  r   r  r.  rm  rU   s
           €€r   r  Ú/TestManyStencils.test_basic57.<locals>.__kernelU  s¢   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ˜!™�AØ%&¨Q¡w°°a±Ð'7Ñ%8¸1¸Q¹4Ñ%?�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   Nr@   r5   rC  r  rp  s   `    @r   Útest_basic57ÚTestManyStencils.test_basic57M  óq   ù€ ò	"ö	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A $Ó'ˆØ×#Ñ# F¨H¸Ø-@À#Ð,Fð 	$ò 	Hr   c                 óî   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#S5      nT R                  TXBUSS0S	9  g)
z?2 args, standard_indexing, split index with broadcast mutation c                 ó(   • US   S-   nU S   US   -   $ )Nr   r   r   r   r�  s      r   rm  Ú-TestManyStencils.test_basic58.<locals>.kernelg  s!   € Ø�!‘�q‘ˆAØ�T‘7˜Q˜q™T‘>Ð!r   c                 óJ  >• T	R                  XS9  T" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HA  n[        SU R                  S   5       H!  nUS   S-   nXS-   US-   4   US   -   XFU4'   M#     MC     U$ rú  rû  ré  s
           €€r   r  Ú/TestManyStencils.test_basic58.<locals>.__kernelm  s¦   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ˜!™˜q™�AØ%&¨Q¡w°°a±Ð'7Ñ%8¸1¸Q¹4Ñ%?�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   Nr@   r5   rC  r  rp  s   `    @r   Útest_basic58ÚTestManyStencils.test_basic58e  rí  r   c           
      óø   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nSnU" X#US5      nT R                  TXRX4SS	S
/0S9  g)z>3 args, mix of array, relative and standard indexing and constc                 ó   • U S   US   -   U-   $ ©Nr   r?  r   r�  s      r   rm  Ú-TestManyStencils.test_basic59.<locals>.kernel  s   € Ø�T‘7˜Q˜t™WÑ$ qÑ(Ð(r   c                 óB  >• T	R                  XS9  T" XU5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H<  n[        SU R                  S   5       H  nXS-   US-   4   US   -   U-   XWU4'   M     M>     U$ )Nr!   r   rÿ   r   r?  rû  r   s
           €€r   r  Ú/TestManyStencils.test_basic59.<locals>.__kernel„  s    ø€ Ø×%Ñ% aÐ%ÑCÙ  a›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°a±Ð'7Ñ%8¸1¸T¹7Ñ%BÀQÑ%F�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   re  Nr@   r5   r.  rC  r  r¢  s   `     @r   Útest_basic59ÚTestManyStencils.test_basic59}  s|   ù€ ò	)ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆØˆÙ˜A ! TÓ*ˆØ×#Ñ# F¨H¸Ø-@À3ÈÀ*Ð,Mð 	$ò 	Or   c           	      óø   • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nSnU R                  [        S9nU R                  XX4SSS	/0US
9  g)zH3 args, mix of array, relative and standard indexing,
tuple pass throughc                 ó$   • U S   US   -   US   -   $ )Nr   r?  r   r   r�  s      r   rm  Ú-TestManyStencils.test_basic60.<locals>.kernel˜  s   € Ø�T‘7˜Q˜t™WÑ$ q¨¡tÑ+Ð+r   r�  rx   rÕ   )re  )r°  r@   r5   r.  r\  Nr]  )rU   rm  r   r5   r.  r©  s         r   Útest_basic60ÚTestManyStencils.test_basic60•  sy   € ò	,ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆØˆà× Ñ ¬Ð Ð8ˆØ×Ñ˜f¨Ø':¸SÀ#¸JÐ&GØ13ð 	ò 	5r   c                 óÒ   • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU R                  XUSS0[        S9  g)	z"2 args, standard_indexing on firstc                 ó   • U S   US   -   $ r÷  r   r4   s     r   rm  Ú-TestManyStencils.test_basic61.<locals>.kernel¥  rY  r   r�  rx   rÕ   r@   r   r\  N)r}   rœ   r�   rç  r   rw  s       r   Útest_basic61ÚTestManyStencils.test_basic61£  s]   € ò	%ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆØ×Ñ˜f¨Ø':¸CÐ&@Ü1:ð 	ò 	<r   c           	      óð   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU" X#S5      nT R                  TXBUSSS	.S
9  g)z"2 args, standard_indexing and cvalc                 ó   • U S   US   -   $ r÷  r   r4   s     r   rm  Ú-TestManyStencils.test_basic62.<locals>.kernel¯  rY  r   c                 ó:  >• TR                  XS9  T" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H9  n[        SU R                  S   5       H  nXS-   US-   4   US   -   XFU4'   M     M;     U$ )Nr!   rù  rÿ   r   r   r?  rû  rn  s	          €€r   r  Ú/TestManyStencils.test_basic62.<locals>.__kernel´  s™   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 D´°ZÓ0@ÑAˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ%&¨Q¡w°°a±Ð'7Ñ%8¸1¸T¹7Ñ%B�D˜c˜“Nó 0ñ 0ð ˆKr   r�  rx   rÕ   Nr5   rù  )r@   r-   rC  r  rp  s   `    @r   Útest_basic62ÚTestManyStencils.test_basic62­  ss   ù€ ò	%ö
	ô �IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�c‹N×"Ñ" 1 aÓ(ˆÙ˜A $Ó'ˆØ×#Ñ# F¨H¸ØBEØ58ñ-:ð 	$ò 	;r   c                 ó  • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nU R                  [        [        [        S9nU R                  XUSS0US	9  g
)zI2 args, standard_indexing applied to relative, should fail,
non-const idxc                 ó   • U SUS   4   $ )Nr   r   r   r4   s     r   rm  Ú-TestManyStencils.test_basic63.<locals>.kernelÇ  s   € Ø�Q˜˜$™�Z‘=Ð r   r�  rx   rÕ   rq  r[  r@   r5   r\  Nr]  rË  s        r   Útest_basic63ÚTestManyStencils.test_basic63Ä  s}   € ò	!ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆÜ�IŠI�b‹M×!Ñ! ! QÓ'ˆØ× Ñ Ü#Ü"Ü ð !ð "ˆð 	×Ñ˜f¨Ð5HÈ#Ð4NØ13ð 	ò 	5r   c                 ó�   • S n[         R                  " S5      R                  SS5      nU R                  XSS0[        [
        /S9  g)	z!1 arg that uses standard_indexingc                 ó   • U S   $ r<   r   r   s    r   rm  Ú-TestManyStencils.test_basic64.<locals>.kernelÕ  rø  r   r�  rx   rÕ   r@   r   r\  Nrá  ©rU   rm  r   s      r   Útest_basic64ÚTestManyStencils.test_basic64Ó  sG   € ò	ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆØ×Ñ˜fÐ2EÀsÐ1KÜ2<¼oÐ1Nð 	ò 	Pr   c                 ó‚   ^ ^• S mUU 4S jn[         R                  " S5      nSnU" X#5      nT R                  TXBSU0S9  g)zbasic induced neighborhood testc                 óD   • Sn[        SS5       H
  nXU   -  nM     US-  $ ©Nr   éãÿÿÿr   é   r&   ©r   Úcumulr)   s      r   rm  Ú-TestManyStencils.test_basic65.<locals>.kernelÝ  ó,   € ØˆEÜ˜3 –]�Ø˜1™‘’ñ #à˜2‘:Ðr   c                 ó  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H)  nSn[        SS5       H  nXPXF-      -  nM     US-  X44'   M+     U$ ©Nr!   r   rÿ   é   r  r   r  rû  ©	r   r"   rþ  rÿ  Ú_TestManyStencils__anr  r)   rm  rU   s	          €€r   r  Ú/TestManyStencils.test_basic65.<locals>.__kernelå  sˆ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜b !§'¡'¨!¡*Ö-�Ø�Ü˜s Až�AØ˜t™x™[Ñ(’Eñ 'à# b™j��U“ñ	 .ð
 ˆKr   ç      N@©)r  r   r"   rC  Nr#  ©rU   r  r   Únhr„   rm  s   `    @r   Útest_basic65ÚTestManyStencils.test_basic65Û  óJ   ù€ ò	ö		ô �IŠI�c‹NˆØˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 ó‚   ^ ^• S mUU 4S jn[         R                  " S5      nSnU" X#5      nT R                  TXBSU0S9  g)zbasic const neighborhood testc                 óD   • Sn[        SS5       H
  nXS   -  nM     US-  $ r  r&   r  s      r   rm  Ú-TestManyStencils.test_basic66.<locals>.kernelù  r!  r   c                 ó  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H*  nSn[        SS5       H  nXPUS-      -  nM     US-  X44'   M,     U$ r#  rû  r%  s	          €€r   r  Ú/TestManyStencils.test_basic66.<locals>.__kernel	  sŠ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜b !§'¡'¨!¡*Ö-�Ø�Ü˜s Až�AØ˜t a™x™[Ñ(’Eñ 'à# b™j��U“ñ	 .ð
 ˆKr   r(  r)  r"   rC  Nr#  r*  s   `    @r   Útest_basic66ÚTestManyStencils.test_basic66÷  r.  r   c                 ó¢   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nSnU" X#5      nT R                  TXBSU0S9  g	)
z"basic 2d induced neighborhood testc                 ól   • Sn[        SS5       H  n[        SS5       H  nXX#4   -  nM     M      US-  $ ©Nr   r    r   éöÿÿÿé2   r&   ©r   r  r)   r®   s       r   rm  Ú-TestManyStencils.test_basic67.<locals>.kernel	  sB   € ØˆEÜ˜2˜q–\�Ü˜s Až�AØ˜q˜t™WÑ$’Eó 'ñ "ð ˜FÑ#Ð#r   c           	      ó„  >• T
R                  XS9  T	" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Ha  n[        SU R                  S   5       HA  nSn[        SS5       H#  n[        SS5       H  nX`XW-   XH-   4   -  nM     M%     US	-  X5U4'   MC     Mc     U$ ©
Nr!   r   rÿ   re  r   rº   r    r9  r:  rû  ©r   r"   rþ  rÿ  Ú_TestManyStencils__bnr&  r  r)   r®   rm  rU   s            €€r   r  Ú/TestManyStencils.test_basic67.<locals>.__kernel	  s¾   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜b !§'¡'¨!¡*Ö-�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 qž\˜Ü!& s¨A¦˜AØ! t¡x°±Ð'9Ñ%:Ñ:šEó "/ñ *ð (-¨r¡z�D˜t˜Ó$ó 1ñ .ð ˆKr   ç      i@re  é   ©r   ©r9  r   r"   rC  Nr  r*  s   `    @r   Útest_basic67ÚTestManyStencils.test_basic67	  óX   ù€ ò	$ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ!ˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 ó�   • S n[         R                  " S5      R                  SS5      nU R                  XSS0[        [
        /S9  g)	z basic 2d induced 1D neighborhoodc                 óH   • Sn[        SS5       H  nXSU4   -  nM     US-  $ )Nr   r9  r   r:  r&   )r   r  r®   s      r   rm  Ú.TestManyStencils.test_basic67b.<locals>.kernel2	  s2   € ØˆEÜ˜3 –]�Ø˜1˜a˜4™Ñ ’ñ #à˜FÑ#Ð#r   rB  re  rC  r"   )rE  r\  N)r}   rœ   r�   rç  r   rÎ  r  s      r   Útest_basic67bÚTestManyStencils.test_basic67b0	  sI   € ò	$ô
 �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ×Ñ˜f°.À+Ð1NÜ2=¼zÐ1Jð 	ò 	Lr   c                 ó¢   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nSnU" X#5      nT R                  TXBSU0S9  g	)
z0basic 2d one induced, one cost neighborhood testc                 ón   • Sn[        SS5       H  n[        SS5       H  nXUS4   -  nM     M!     US-  $ r8  r&   r;  s       r   rm  Ú-TestManyStencils.test_basic68.<locals>.kernel>	  sD   € ØˆEÜ˜2˜q–\�Ü˜s Až�AØ˜q !˜t™WÑ$’Eó 'ñ "ð ˜FÑ#Ð#r   c           	      ó†  >• T
R                  XS9  T	" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hb  n[        SU R                  S   5       HB  nSn[        SS5       H$  n[        SS5       H  nX`XW-   US-   4   -  nM     M&     US	-  X5U4'   MD     Md     U$ r>  rû  r?  s            €€r   r  Ú/TestManyStencils.test_basic68.<locals>.__kernelH	  sÀ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜b !§'¡'¨!¡*Ö-�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 qž\˜Ü!& s¨A¦˜AØ! t¡x°¸±Ð'9Ñ%:Ñ:šEó "/ñ *ð (-¨r¡z�D˜t˜Ó$ó 1ñ .ð ˆKr   rB  re  rC  rD  r"   rC  Nr  r*  s   `    @r   Útest_basic68ÚTestManyStencils.test_basic68<	  sX   ù€ ò	$ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ!ˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 ó¢   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nSnU" X#5      nT R                  TXBSU0S9  g	)
z#basic 2d two cost neighborhood testc                 ój   • Sn[        SS5       H  n[        SS5       H
  nXS   -  nM     M     US-  $ )Nr   r    r   r9  r=   r:  r&   r;  s       r   rm  Ú-TestManyStencils.test_basic69.<locals>.kernel^	  s@   € ØˆEÜ˜2˜q–\�Ü˜s Až�AØ˜t™WÑ$’Eó 'ñ "ð ˜FÑ#Ð#r   c           	      óˆ  >• T
R                  XS9  T	" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hc  n[        SU R                  S   5       HC  nSn[        SS5       H%  n[        SS5       H  nX`US-   US-   4   -  nM     M'     US	-  X5U4'   ME     Me     U$ r>  rû  r?  s            €€r   r  Ú/TestManyStencils.test_basic69.<locals>.__kernelg	  sÂ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜b !§'¡'¨!¡*Ö-�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 qž\˜Ü!& s¨A¦˜AØ! t¨a¡x°¸±Ð'9Ñ%:Ñ:šEó "/ñ *ð (-¨r¡z�D˜t˜Ó$ó 1ñ .ð ˆKr   rB  re  rC  rD  r"   rC  Nr  r*  s   `    @r   Útest_basic69ÚTestManyStencils.test_basic69\	  rH  r   c                 ó¢   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nSnU" X#5      nT R                  TXBSU0S9  g	)
zneighborhood adding complexityc                 ó~   • SnSn[        SS5       H%  nX#-   n[        SS5       H  nXX54   U-   -  nM     M'     US-  $ )Nr   r�  r    r   r9  r:  r&   ©r   r  Úzzr)   r€  r®   s         r   rm  Ú-TestManyStencils.test_basic70.<locals>.kernel|	  sR   € ØˆEØˆBÜ˜2˜q–\�Ø‘F�Ü˜s Až�AØ˜q˜t™W q™[Ñ(’Eó 'ñ "ð ˜FÑ#Ð#r   c           	      ó–  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hj  n[        SU R                  S   5       HJ  nSnSn[        SS5       H*  nXx-   n	[        S	S5       H  n
X`XX-   XJ-   4   U	-   -  nM     M,     US
-  X5U4'   ML     Ml     U$ )Nr!   r   rÿ   re  r   rº   r�  r    r9  r:  rû  ©r   r"   rþ  rÿ  r@  r&  r  r_  r)   r€  r®   rm  rU   s              €€r   r  Ú/TestManyStencils.test_basic70.<locals>.__kernel‡	  sÏ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜b !§'¡'¨!¡*Ö-�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EØ�BÜ" 2 qž\˜Ø™F˜Ü!& s¨A¦˜AØ! t¡x°±Ð'9Ñ%:¸QÑ%>Ñ>šEó "/ñ *ð (-¨r¡z�D˜t˜Ó$ó 1ñ .ð ˆKr   rB  re  rC  rD  r"   rC  Nr  r*  s   `    @r   Útest_basic70ÚTestManyStencils.test_basic70z	  sX   ù€ ò	$ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ!ˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 ó‚   ^ ^• S mUU 4S jn[         R                  " S5      nSnU" X#5      nT R                  TXBSU0S9  g)zneighborhood, type changec                 ó^   • Sn[        SS5       H  nSnUS:”  a  SnXU   U-   -  nM     US-  $ )Nr   r  r   ç        éñÿÿÿrz  r  r&   )r   r  r)   rì  s       r   rm  Ú-TestManyStencils.test_basic71.<locals>.kernelž	  sD   € ØˆEÜ˜3 –]�Ø�Ø�s“7Ø�AØ˜1™ ™Ñ!’ñ	 #ð
 ˜2‘:Ðr   c                 ó.  >• T	R                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H6  nSn[        SS5       H  nSnUS:”  a  S	nXPXF-      U-   -  nM     US
-  X44'   M8     U$ )Nr!   r   rÿ   r$  r  r   rh  ri  rz  r  rû  )
r   r"   rþ  rÿ  r&  r  r)   rì  rm  rU   s
           €€r   r  Ú/TestManyStencils.test_basic71.<locals>.__kernel©	  sŸ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜b !§'¡'¨!¡*Ö-�Ø�Ü˜s Až�AØ�AØ˜3“wØ ˜Ø˜t™x™[¨1™_Ñ,’Eñ	 'ð
 $ b™j��U“ñ .ð ˆKr   r(  r)  r"   rC  Nr#  r*  s   `    @r   Útest_basic71ÚTestManyStencils.test_basic71œ	  sJ   ù€ ò	ö	ô �IŠI�c‹NˆØˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 ó‚   ^ ^• S mUU 4S jn[         R                  " S5      nSnU" X#5      nT R                  TXBSU0S9  g)z+neighborhood, narrower range than specifiedc                 óD   • Sn[        SS5       H
  nXU   -  nM     US-  $ )Nr   éíÿÿÿr®  r  r&   r  s      r   rm  Ú-TestManyStencils.test_basic72.<locals>.kernel¿	  ó,   € ØˆEÜ˜3 –^�Ø˜1™‘’ñ $à˜2‘:Ðr   c                 ó  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H)  nSn[        SS5       H  nXPXF-      -  nM     US-  X44'   M+     U$ )Nr!   r   rÿ   r$  rq  r®  r  rû  r%  s	          €€r   r  Ú/TestManyStencils.test_basic72.<locals>.__kernelÇ	  óˆ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜b !§'¡'¨!¡*Ö-�Ø�Ü˜s Bž�AØ˜t™x™[Ñ(’Eñ (à# b™j��U“ñ	 .ð
 ˆKr   r(  r)  r"   rC  Nr#  r*  s   `    @r   Útest_basic72ÚTestManyStencils.test_basic72½	  r.  r   c                 ó‚   ^ ^• S mUU 4S jn[         R                  " S5      nSnU" X#5      nT R                  TXBSU0S9  g)zneighborhood, +ve rangec                 óD   • Sn[        SS5       H
  nXU   -  nM     US-  $ )Nr   rº   é   r  r&   r  s      r   rm  Ú-TestManyStencils.test_basic73.<locals>.kernelÚ	  s,   € ØˆEÜ˜1˜b–\�Ø˜1™‘’ñ "à˜2‘:Ðr   c                 ó  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H)  nSn[        SS5       H  nXPXF-      -  nM     US-  X44'   M+     U$ )Nr!   r   rÿ   re  rº   r{  r  rû  r%  s	          €€r   r  Ú/TestManyStencils.test_basic73.<locals>.__kernelâ	  sŒ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡¨b¡Ö1�Ø�Ü˜q "ž�AØ˜t™x™[Ñ(’Eñ &à# b™j��U“ñ	 2ð
 ˆKr   r(  ))rº   re  r"   rC  Nr#  r*  s   `    @r   Útest_basic73ÚTestManyStencils.test_basic73Ø	  sJ   ù€ ò	ö		ô �IŠI�c‹NˆØˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 ó‚   ^ ^• S mUU 4S jn[         R                  " S5      nSnU" X#5      nT R                  TXBSU0S9  g)zneighborhood, -ve rangec                 óD   • Sn[        SS5       H
  nXU   -  nM     US-  $ )Nr   r9  r$   r  r&   r  s      r   rm  Ú.TestManyStencils.test_basic73b.<locals>.kernelõ	  rs  r   c                 ó  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H)  nSn[        SS5       H  nXPXF-      -  nM     US-  X44'   M+     U$ )Nr!   r   rÿ   re  r9  r$   r  rû  r%  s	          €€r   r  Ú0TestManyStencils.test_basic73b.<locals>.__kernelý	  rv  r   r(  ))r9  r    r"   rC  Nr#  r*  s   `    @r   Útest_basic73bÚTestManyStencils.test_basic73bó	  sJ   ù€ ò	ö		ô �IŠI�c‹NˆØˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 ó‚   ^ ^• S mUU 4S jn[         R                  " S5      nSnU" X#5      nT R                  TXBSU0S9  g)z!neighborhood, -ve->+ve range spanc                 óD   • Sn[        SS5       H
  nXU   -  nM     US-  $ )Nr   r    r{  r  r&   r  s      r   rm  Ú-TestManyStencils.test_basic74.<locals>.kernel
  s,   € ØˆEÜ˜2˜r–]�Ø˜1™‘’ñ #à˜2‘:Ðr   c                 ó  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H)  nSn[        SS5       H  nXPXF-      -  nM     US-  X44'   M+     U$ )	Nr!   r   rÿ   rº   re  r    r{  r  rû  r%  s	          €€r   r  Ú/TestManyStencils.test_basic74.<locals>.__kernel
  sŒ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡¨b¡Ö1�Ø�Ü˜r 2ž�AØ˜t™x™[Ñ(’Eñ 'à# b™j��U“ñ	 2ð
 ˆKr   r(  ))r    re  r"   rC  Nr#  r*  s   `    @r   Útest_basic74ÚTestManyStencils.test_basic74
  r.  r   c                 ó‚   ^ ^• S mUU 4S jn[         R                  " S5      nSnU" X#5      nT R                  TXBSU0S9  g)z!neighborhood, -ve->-ve range spanc                 óD   • Sn[        SS5       H
  nXU   -  nM     US-  $ )Nr   r9  r   r  r&   r  s      r   rm  Ú-TestManyStencils.test_basic75.<locals>.kernel+
  rs  r   c                 ó  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H)  nSn[        SS5       H  nXPXF-      -  nM     US-  X44'   M+     U$ )Nr!   r   rÿ   re  r9  r   r  rû  r%  s	          €€r   r  Ú/TestManyStencils.test_basic75.<locals>.__kernel4
  rv  r   r(  ))r9  r0   r"   rC  Nr#  r*  s   `    @r   Útest_basic75ÚTestManyStencils.test_basic75)
  sJ   ù€ ò	ö		ô �IŠI�c‹NˆØˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 ó¢   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nSnU" X#5      nT R                  TXBSU0S9  g	)
zneighborhood, mixed range spanc                 ó~   • SnSn[        SS5       H%  nX#-   n[        SS5       H  nXX54   U-   -  nM     M'     US-  $ )Nr   r�  r®  rÕ   r:  r&   r^  s         r   rm  Ú-TestManyStencils.test_basic76.<locals>.kernelG
  sR   € ØˆEØˆBÜ˜2˜q–\�Ø‘F�Ü˜r 1ž�AØ˜q˜t™W q™[Ñ(’Eó &ñ "ð ˜FÑ#Ð#r   c           	      óœ  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       Hj  n[        SU R                  S   5       HJ  nSnSn[        SS5       H*  nXx-   n	[        SS5       H  n
X`XX-   XJ-   4   U	-   -  nM     M,     US	-  X5U4'   ML     Ml     U$ )
Nr!   r   rÿ   rx   r   r�  r®  rÕ   r:  rû  rb  s              €€r   r  Ú/TestManyStencils.test_basic76.<locals>.__kernelS
  sÓ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡¨a¡Ö0�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EØ�BÜ" 2 qž\˜Ø™F˜Ü!& r¨1¦˜AØ! t¡x°±Ð'9Ñ%:¸QÑ%>Ñ>šEó ".ñ *ð (-¨r¡z�D˜t˜Ó$ó 1ñ 1ð ˆKr   rB  re  rC  ))r®  r   )r®  rx   r"   rC  Nr  r*  s   `    @r   Útest_basic76ÚTestManyStencils.test_basic76E
  sX   ù€ ò	$ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ!ˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 óò   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nSnU" X#U5      nT R                  TXRUSU0S9  g	)
zneighborhood, two args c                 óz   • Sn[        SS5       H%  n[        SS5       H  nX X44   XU4   -   -  nM     M'     US-  $ ©Nr   r®  r   r~  r&   ©r   r5   r  r)   r®   s        r   rm  Ú-TestManyStencils.test_basic77.<locals>.kernelj
  óL   € ØˆEÜ˜2˜q–\�Ü˜r 1ž�AØ˜q˜t™W q¨A¨¡wÑ.Ñ.’Eó &ñ "ð ˜B‘<Ðr   c           
      óž  >• TR                  XUS9  T
" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hm  n[        SU R                  S   5       HM  nSn[        SS5       H/  n[        SS5       H  n	XpXh-   XY-   4   XU-   XY-   4   -   -  nM     M1     US-  XFU4'   MO     Mo     U$ ©Nr!   r   rÿ   rx   r   r®  r~  rû  ©r   r5   r"   rþ  rÿ  r@  r&  r  r)   r®   rm  rU   s             €€r   r  Ú/TestManyStencils.test_basic77.<locals>.__kernels
  sØ   ø€ Ø×%Ñ% a¸Ð%ÑFÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡Ö,�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 qž\˜Ü!& r¨1¦˜AØ!¨©°$±(Ð(:Ñ&;Ø&'¨q©°$±(Ð(:Ñ&;ñ'<ñ =šEó ".ñ *ð (-¨s¡{�D˜t˜Ó$ó 1ñ -ð ˆKr   rB  re  rC  ©©r®  r   r¨  r"   rC  Nr  ©rU   r  r   r5   r+  r„   rm  s   `     @r   Útest_basic77ÚTestManyStencils.test_basic77h
  óx   ù€ ò	 ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆÜ�IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ ˆÙ˜A "Ó%ˆØ×#Ñ# F¨H¸Ø-;¸RÐ,@ð 	$ò 	Br   c                 óò   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nSnU" X#U5      nT R                  TXRUSU0S9  g	)
z-neighborhood, two args, -ve range, -ve range c                 óz   • Sn[        SS5       H%  n[        SS5       H  nX X44   XU4   -   -  nM     M'     US-  $ )Nr   éúÿÿÿr0   éùÿÿÿr   r~  r&   r   s        r   rm  Ú-TestManyStencils.test_basic78.<locals>.kernelŠ
  sL   € ØˆEÜ˜2˜r–]�Ü˜r 2ž�AØ˜q˜t™W q¨A¨¡wÑ.Ñ.’Eó 'ñ #ð ˜B‘<Ðr   c           
      óž  >• TR                  XUS9  T
" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hm  n[        SU R                  S   5       HM  nSn[        SS5       H/  n[        S	S
5       H  n	XpXh-   XY-   4   XU-   XY-   4   -   -  nM     M1     US-  XFU4'   MO     Mo     U$ )Nr!   r   rÿ   rj  r   r‡  r¯  r0   r°  r   r~  rû  r¥  s             €€r   r  Ú/TestManyStencils.test_basic78.<locals>.__kernel“
  sØ   ø€ Ø×%Ñ% a¸Ð%ÑFÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡Ö,�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 rž]˜Ü!& r¨2¦˜AØ!¨©°$±(Ð(:Ñ&;Ø&'¨q©°$±(Ð(:Ñ&;ñ'<ñ =šEó "/ñ +ð (-¨s¡{�D˜t˜Ó$ó 1ñ -ð ˆKr   ç     Àr@r¶  rC  )©r¯  r®  )r°  r0   r"   rC  Nr  r©  s   `     @r   Útest_basic78ÚTestManyStencils.test_basic78ˆ
  sx   ù€ ò	 ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆÜ�IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ"ˆÙ˜A "Ó%ˆØ×#Ñ# F¨H¸Ø-;¸RÐ,@ð 	$ò 	Br   c                 óò   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SS5      nSnU" X#U5      nT R                  TXRUSU0S9  g	)
z-neighborhood, two args, -ve range, +ve range c                 óz   • Sn[        SS5       H%  n[        SS5       H  nX X44   XU4   -   -  nM     M'     US-  $ )Nr   r¯  r0   r1   re  r~  r&   r   s        r   rm  Ú.TestManyStencils.test_basic78b.<locals>.kernelª
  sL   € ØˆEÜ˜2˜r–]�Ü˜q "ž�AØ˜q˜t™W q¨A¨¡wÑ.Ñ.’Eó &ñ #ð ˜B‘<Ðr   c           
      ó¤  >• TR                  XUS9  T
" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       Hm  n[        SU R                  S   5       HM  nSn[        SS5       H/  n[        S	S
5       H  n	XpXh-   XY-   4   XU-   XY-   4   -   -  nM     M1     US-  XFU4'   MO     Mo     U$ )Nr!   r   rÿ   r   é	   r‡  r¯  r0   r1   re  r~  rû  r¥  s             €€r   r  Ú0TestManyStencils.test_basic78b.<locals>.__kernel³
  sÜ   ø€ Ø×%Ñ% a¸Ð%ÑFÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡¨a¡Ö0�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 rž]˜Ü!& q¨"¦˜AØ!¨©°$±(Ð(:Ñ&;Ø&'¨q©°$±(Ð(:Ñ&;ñ'<ñ =šEó ".ñ +ð (-¨s¡{�D˜t˜Ó$ó 1ñ 1ð ˆKr   r´  r¶  rC  )rµ  )r1   r¼  r"   rC  Nr  r©  s   `     @r   Útest_basic78bÚTestManyStencils.test_basic78b¨
  r¬  r   c                 ó  • S n[         R                  " S5      R                  SS5      n[         R                  " S5      R                  SSS5      nU R                  [        [        [        S9nU R                  XUSS0US	9  g
)z$neighborhood, two incompatible args c                 óz   • Sn[        SS5       H%  n[        SS5       H  nX X44   XU4   -   -  nM     M'     US-  $ rŸ  r&   r   s        r   rm  Ú-TestManyStencils.test_basic79.<locals>.kernelÊ
  r¢  r   rB  re  rC  r1   r[  r"   r§  r\  N)r}   rœ   r�   rî  r   rç  rË  s        r   Útest_basic79ÚTestManyStencils.test_basic79È
  s†   € ò	 ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆÜ�IŠI�iÓ ×(Ñ(¨¨R°Ó3ˆØ× Ñ ÜÜÜð !ð ˆð 	×Ñ˜f¨°^Ø5Hð5Jà13ð 	ò 	5r   c                 óª   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nSnSnU" X#U5      nT R                  TXRUSU0S	9  g
)zneighborhood, type change c                 ór   • Sn[        SS5       H!  n[        SS5       H  nX X44   U-   -  nM     M#     US-  $ rŸ  r&   r   s        r   rm  Ú-TestManyStencils.test_basic80.<locals>.kernelÜ
  sE   € ØˆEÜ˜2˜q–\�Ü˜r 1ž�AØ˜q˜t™W q™[Ñ(’Eó &ñ "ð ˜B‘<Ðr   c           	      óŒ  >• TR                  XUS9  T
" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hd  n[        SU R                  S   5       HD  nSn[        SS5       H&  n[        SS5       H  n	XpXh-   XY-   4   U-   -  nM     M(     US-  XFU4'   MF     Mf     U$ r¤  rû  r¥  s             €€r   r  Ú/TestManyStencils.test_basic80.<locals>.__kernelå
  sÅ   ø€ Ø×%Ñ% a¸Ð%ÑFÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡Ö,�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 qž\˜Ü!& r¨1¦˜AØ! t¡x°±Ð'9Ñ%:¸QÑ%>Ñ>šEó ".ñ *ð (-¨s¡{�D˜t˜Ó$ó 1ñ -ð ˆKr   rB  re  rC  y              (@r§  r"   rC  Nr  r©  s   `     @r   Útest_basic80ÚTestManyStencils.test_basic80Ú
  sb   ù€ ò	 ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØˆØˆÙ˜A "Ó%ˆØ×#Ñ# F¨H¸Ø-;¸RÐ,@ð 	$ò 	Br   c                 óÞ   • S n[         R                  " S5      R                  SS5      nUS   R                  5       nU R	                  [
        [        [
        S9nU R                  XUSS0US	9  g
)z0neighborhood, dimensionally incompatible arrays c                 óv   • Sn[        SS5       H#  n[        SS5       H  nX X44   X   -   -  nM     M%     US-  $ rŸ  r&   r   s        r   rm  Ú-TestManyStencils.test_basic81.<locals>.kernelû
  sG   € ØˆEÜ˜2˜q–\�Ü˜r 1ž�AØ˜q˜t™W q¡t™^Ñ+’Eó &ñ "ð ˜B‘<Ðr   rB  re  rC  r   r[  r"   r§  r\  N)r}   rœ   r�   Úcopyrî  r   r}  rç  rË  s        r   Útest_basic81ÚTestManyStencils.test_basic81ù
  sv   € ò	 ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØˆa‰D�I‰I‹KˆØ× Ñ ÜÜ!Üð !ð ˆð 	×Ñ˜f¨Ø'5Ð7IÐ&JØ13ð 	ò 	5r   c           	      óÈ   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nUR                  5       nSnU" X#U5      nT R	                  TXRUUSS.S	9  g
)z$neighborhood, with standard_indexingc                 óx   • Sn[        SS5       H$  n[        SS5       H  nX X44   US   -   -  nM     M&     US-  $ ©Nr   r®  r   ©r   rx   r~  r&   r   s        r   rm  Ú-TestManyStencils.test_basic82.<locals>.kernel  óJ   € ØˆEÜ˜2˜q–\�Ü˜r 1ž�AØ˜q˜t™W q¨¡wÑ.Ñ.’Eó &ñ "ð ˜B‘<Ðr   c           	      ó’  >• TR                  XUS9  T
" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hg  n[        SU R                  S   5       HG  nSn[        SS5       H)  n[        SS5       H  n	XpXh-   XY-   4   US   -   -  nM     M+     US-  XFU4'   MI     Mi     U$ )	Nr!   r   rÿ   rx   r   r®  rÕ  r~  rû  r¥  s             €€r   r  Ú/TestManyStencils.test_basic82.<locals>.__kernel  sÉ   ø€ Ø×%Ñ% a¸Ð%ÑFÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡Ö,�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 qž\˜Ü!& r¨1¦˜AØ! t¡x°±Ð'9Ñ%:¸Q¸t¹WÑ%DÑDšEó ".ñ *ð (-¨s¡{�D˜t˜Ó$ó 1ñ -ð ˆKr   rB  re  rC  r§  r5   )r"   r@   rC  N©r}   rœ   r�   rÏ  rÞ  r©  s   `     @r   Útest_basic82ÚTestManyStencils.test_basic82  sl   ù€ ò	 ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ�F‰F‹HˆØˆÙ˜A "Ó%ˆØ×#Ñ# F¨H¸Ø=?ØBEñ-Gð 	$ò 	Hr   c           
      ó6  ^ ^• S m[         R                  " S5      R                  SS5      nUR                  5       nUU 4S jn[         R                  " S5      R                  SS5      nUR                  5       nSnU" XU5      nT R	                  TXQUUSSS	.S
9  g)z-neighborhood, with standard_indexing and cvalc                 óx   • Sn[        SS5       H$  n[        SS5       H  nX X44   US   -   -  nM     M&     US-  $ rÔ  r&   r   s        r   rm  Ú-TestManyStencils.test_basic83.<locals>.kernel-  r×  r   rB  re  rC  c           	      ó’  >• TR                  XUS9  T
" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hg  n[        SU R                  S   5       HG  nSn[        SS5       H)  n[        SS5       H  n	XpXh-   XY-   4   US   -   -  nM     M+     US	-  XFU4'   MI     Mi     U$ )
Nr!   ç      ø?rÿ   rx   r   r   r®  rÕ  r~  rû  r¥  s             €€r   r  Ú/TestManyStencils.test_basic83.<locals>.__kernel9  sÉ   ø€ Ø×%Ñ% a¸Ð%ÑFÙ ›ˆJÜ—7’7˜1Ÿ7™7 C¬t°JÓ/?Ñ@ˆDÜ˜a §¡¨¡Ö,�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 qž\˜Ü!& r¨1¦˜AØ! t¡x°±Ð'9Ñ%:¸Q¸t¹WÑ%DÑDšEó ".ñ *ð (-¨s¡{�D˜t˜Ó$ó 1ñ -ð ˆKr   r§  r5   rá  ©r"   r@   r-   rC  NrÚ  )rU   r   r5   r  r+  r„   rm  s   `     @r   Útest_basic83ÚTestManyStencils.test_basic83+  s•   ù€ ò	 ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ�F‰F‹Hˆö
	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ�F‰F‹HˆØˆÙ˜A "Ó%ˆØ×#Ñ# F¨H¸Ø=?ØBEØ58ñ-;ð 	$ò 	<r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)zkernel calls njit c                 ó*   • U S   [        U S   5      -   $ ©Nr=   r   )rG   r   s    r   rm  Ú-TestManyStencils.test_basic84.<locals>.kernelQ  ó   € Ø�T‘7œ[¨¨4©Ó1Ñ1Ð1r   c           	      ón  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HS  n[        SU R                  S   5       H3  nXS-   US-   4   [        R                  XS-   US-   4   5      -   X5U4'   M5     MU     U$ rú  )ró  r}   rü  rñ  r£  r'   rG   Úpy_funcrý  s         €€r   r  Ú/TestManyStencils.test_basic84.<locals>.__kernelV  ó´   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ&'¨a©°°q±Ð(8Ñ&9Ü&1×&9Ñ&9¸!À!¹GÀSÈ1ÁWÐ<LÑ:MÓ&Nñ'O�D˜c˜“Nó 0ñ 0ð ˆKr   rB  re  rC  Nr  r  s   `   @r   Útest_basic84ÚTestManyStencils.test_basic84O  sF   ù€ ò	2ö
	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)z kernel calls njit(parallel=True)c                 ó*   • U S   [        U S   5      -   $ rè  )rK   r   s    r   rm  Ú-TestManyStencils.test_basic85.<locals>.kernelf  rê  r   c           	      ón  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HS  n[        SU R                  S   5       H3  nXS-   US-   4   [        R                  XS-   US-   4   5      -   X5U4'   M5     MU     U$ rú  )ró  r}   rü  rñ  r£  r'   rK   rì  rý  s         €€r   r  Ú/TestManyStencils.test_basic85.<locals>.__kernell  rî  r   rB  re  rC  Nr  r  s   `   @r   Útest_basic85ÚTestManyStencils.test_basic85d  sF   ù€ ò	2ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 ó�   • S n[         R                  " S5      R                  SS5      nU R                  XSS0[        [
        /S9  g)z
bad kwarg c                 ó   • U S   $ r<   r   r   s    r   rm  Ú-TestManyStencils.test_basic86.<locals>.kernel}  rø  r   rB  re  rC  Úbadr\  N)r}   rœ   r�   rç  rÎ  r   r  s      r   Útest_basic86ÚTestManyStencils.test_basic86{  sH   € ò	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ×Ñ˜f°%¸°Ü2<¼kÐ1Jð 	ò 	Lr   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)zreserved arg name in use c                 ó   • U S   $ r<   r   )Ú__sentinel__s    r   rm  Ú-TestManyStencils.test_basic87.<locals>.kernel†  s   € Ø Ñ%Ð%r   c                 ó(  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H3  n[        SU R                  S   5       H  nXS-   US-   4   X5U4'   M     M5     U$ rú  rû  )r   r"   rþ  rÿ  r   r  rm  rU   s         €€r   r  Ú/TestManyStencils.test_basic87.<locals>.__kernel‹  s•   ø€ Ø×%Ñ% lÐ%ÑNÙ Ó-ˆJÜ—7’7˜<×-Ñ-¨q¼¸ZÓ8HÑIˆDÜ˜Q × 2Ñ 2°1Ñ 5Ö6�Ü   L×$6Ñ$6°qÑ$9Ö:�CØ%1¸±'¸3À¹7Ð2BÑ%C�D˜c˜“Nó ;ñ 7ð ˆKr   rB  re  rC  Nr  r  s   `   @r   Útest_basic87ÚTestManyStencils.test_basic87„  sF   ù€ ò	&ö
	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 ó´   • S n[         R                  " S5      R                  SS5      nU R                  [        [        [        S9nU R                  XS0 US9  g)	zuse of reserved word c                 ó   • XS   -  $ r  r   )r   r›   s     r   rm  Ú-TestManyStencils.test_basic88.<locals>.kernelš  s   € Ø˜4™‘=Ð r   r�  rx   rÕ   r[  r+   r\  Nr]  r^  s       r   Útest_basic88ÚTestManyStencils.test_basic88˜  sX   € ò	!ä�IŠI�c‹N×"Ñ" 1 aÓ(ˆØ× Ñ Ü#Ü"Ü ð !ð "ˆð 	×Ñ˜f¨°bÈRÐÒPr   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)zbasic multiple returnc                 ó4   • U S   S:”  a  gU S   S:  a  U S   $ g)Nr   re  rù  r¦  rë  r=   rá   r   r   s    r   rm  Ú-TestManyStencils.test_basic89.<locals>.kernel¥  s'   € Ø�‰w˜‹|ØØ�4‘˜1“Ø˜‘w�àr   c                 óŽ  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       Hc  n[        SU R                  S   5       HC  nXS-   US-   4   S:”  a  SX5U4'   M  XS-   US-   4   S:  a  XS-   US-   4   X5U4'   M=  S	X5U4'   ME     Me     U$ )
Nr!   r   rÿ   r   rx   re  rù  rë  rá   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic89.<locals>.__kernel¯  sÖ   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡JÖ/�CØ˜q™ #¨¡'Ð)Ñ*¨RÓ/Ø)-˜ #˜X›Ø ™7 C¨!¡GÐ+Ñ,¨qÓ0Ø)*°©7°C¸!±GÐ+;Ñ)<˜ #˜X›à),˜ #˜X›ó 0ñ 0ð ˆKr   rB  re  rC  Nr  r  s   `   @r   Útest_basic89ÚTestManyStencils.test_basic89£  sF   ù€ ò	ö	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c           
      óÊ   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nUR                  5       nSnU" X#U5      nT R	                  TXRUUSSS	.S
9  g)z?neighborhood, with standard_indexing and cval, multiple returnsc                 ó’   • Sn[        SS5       H$  n[        SS5       H  nX X44   US   -   -  nM     M&     US-  nUS:”  a  US-   $ U$ )Nr   r®  r   rÕ  r~  rB  r+   r&   )r   r5   r  r)   r®   Úress         r   rm  Ú-TestManyStencils.test_basic90.<locals>.kernelÃ  s_   € ØˆEÜ˜2˜q–\�Ü˜r 1ž�AØ˜q˜t™W q¨¡wÑ.Ñ.’Eó &ñ "ð ˜2‘,ˆCØ�U‹{Ø˜S‘yÐ à�
r   c           	      ó¶  >• TR                  XUS9  T" X5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       Hy  n[        SU R                  S   5       HY  nSn[        SS5       H)  n[        SS5       H  n	XpXh-   XY-   4   US   -   -  nM     M+     US	-  n
U
S
:”  a  U
S-   XFU4'   MT  X¤Xe4'   M[     M{     U$ )Nr!   rá  rÿ   rx   r   r   r®  rÕ  r~  rB  r+   rû  )r   r5   r"   rþ  rÿ  r@  r&  r  r)   r®   r  rm  rU   s              €€r   r  Ú/TestManyStencils.test_basic90.<locals>.__kernelÐ  sã   ø€ Ø×%Ñ% a¸Ð%ÑFÙ ›ˆJÜ—7’7˜1Ÿ7™7 C¬t°JÓ/?Ñ@ˆDÜ˜a §¡¨¡Ö,�Ü! ! Q§W¡W¨Q¡ZÖ0�DØ�EÜ" 2 qž\˜Ü!& r¨1¦˜AØ! t¡x°±Ð'9Ñ%:¸Q¸t¹WÑ%DÑDšEó ".ñ *ð   #™+�CØ˜U“{Ø+.°©9˜ 4˜ZÓ(à+.˜T˜ZÓ(ó 1ñ -ð ˆKr   rB  re  rC  r§  r5   rá  rã  rC  NrÚ  r©  s   `     @r   Útest_basic90ÚTestManyStencils.test_basic90Á  sm   ù€ ò		ö	ô" �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆØ�F‰F‹HˆØˆÙ˜A "Ó%ˆØ×#Ñ# F¨H¸Ø=?ØBEØ58ñ-;ð 	$ò 	<r   c                 óž   ^ ^• S mUU 4S jn[         R                  " S5      R                  SS5      nU" US5      nT R                  TX25        g)z>Issue #3454, const(int) == const(int) evaluating incorrectly. c                 ó&   • SnSS:X  a  SnU S   U-   $ )Nr   r1   r=   r   r4   s     r   rm  Ú-TestManyStencils.test_basic91.<locals>.kernelì  s!   € ØˆAØ�Q“Ø�Ø�T‘7˜Q‘;Ðr   c                 óB  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   5       H@  n[        SU R                  S   5       H   nSnSS:X  a  SnXS-   US-   4   U-   X5U4'   M"     MB     U$ rÒ  rû  )	r   r"   rþ  rÿ  r   r  r5   rm  rU   s	          €€r   r  Ú/TestManyStencils.test_basic91.<locals>.__kernelô  s¢   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
Ö+�Ü   A§G¡G¨A¡JÖ/�CØ�AØ˜A“vØ˜Ø%&¨Q¡w°°a±Ð'7Ñ%8¸1Ñ%<�D˜c˜“Nó	 0ñ ,ð ˆKr   rB  re  rC  Nr  r  s   `   @r   Útest_basic91ÚTestManyStencils.test_basic91ê  sF   ù€ ò	ö
	ô �IŠI�iÓ ×(Ñ(¨¨RÓ0ˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 ó  ^ ^• S mUU 4S jn[         R                  " [         R                  " S5      S-  5      R                  SS5      R	                  [         R
                  5      nU" US5      nT R                  TX25        g)ú6Issue #3497, bool return type evaluating incorrectly. c                 ól   • U S   U S   -  U S   -  U S   -  U S   -  U S   -  U S   -  U S   -  U S	   -  $ ©
NrG  r   r.  r   r=   r   r7  r   r?  r   r   s    r   rm  Ú-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R                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       Hž  n[        SU R                  S   S-
  5       H{  nXS-   US-   4   XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  X5U4'   M}     M      U$ r  rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic92.<locals>.__kernel  ó`  ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜Q §¡¨¡
¨Q¡Ö/�Ü   A§G¡G¨A¡J°¡NÖ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ó 4ñ 0ð ˆKr   rC  r1   rÕ   rº   N©r}   r.  rœ   r�   rþ  r  rÞ  ©rU   r  r¡   r„   rm  s   `   @r   Útest_basic92ÚTestManyStencils.test_basic92  sb   ù€ ò	2ö	ô" �HŠH”R—Y’Y˜r“] QÑ&Ó'×/Ñ/°°1Ó5×<Ñ<¼R¿X¹XÓFˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÕ8r   c                 ó  ^ ^• S mUU 4S jn[         R                  " [         R                  " S5      S-  5      R                  SS5      R	                  [         R
                  5      nU" US5      nT R                  TX2SS	0S
9  g)r"  c                 ól   • U S   U S   -  U S   -  U S   -  U S   -  U S   -  U S   -  U S   -  U S	   -  $ r$  r   r   s    r   rm  Ú-TestManyStencils.test_basic93.<locals>.kernel%  r&  r   c                 ó  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       Hž  n[        SU R                  S   S-
  5       H{  nXS-   US-   4   XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  XS-   US-   4   -  X5U4'   M}     M      U$ )Nr!   r   rÿ   r   r   rû  rý  s         €€r   r  Ú/TestManyStencils.test_basic93.<locals>.__kernel,  r)  r   rC  r1   rÕ   rº   Nr-   TrC  r*  r+  s   `   @r   Útest_basic93ÚTestManyStencils.test_basic93#  sk   ù€ ò	2ö	ô" �HŠH”R—Y’Y˜r“] QÑ&Ó'×/Ñ/°°1Ó5×<Ñ<¼R¿X¹XÓFˆÙ˜A˜tÓ$ˆØ×#Ñ# F¨HÀ&È$ÀÐ#ÒPr   c                 ó¼   ^ ^• S mUU 4S jn[         R                  " S[         R                  S9R                  SS5      nSnU" X#5      nT R	                  TXBSU0S	9  g
)z!Issue #3528. Support for slices. c                 ó@   • [         R                  " U SS2SS24   5      $ ©Nr   r1   ©r}   Úmedianr   s    r   rm  Ú-TestManyStencils.test_basic94.<locals>.kernelC  ó!   € Ü—9’9˜Q˜r !˜t R¨ T˜z™]Ó+Ð+r   c           	      óp  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       HT  n[        SU R                  S   S-
  5       H1  n[        R                  " XS-   US-   2US-   US-   24   5      X5U4'   M3     MV     U$ ©Nr!   r   rÿ   r   r   r1   ©ró  r}   rü  rñ  r£  r'   r9  )r   r"   rþ  rÿ  r@  r&  rm  rU   s         €€r   r  Ú/TestManyStencils.test_basic94.<locals>.__kernelH  sº   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡¨a¡Ö0�Ü! ! Q§W¡W¨Q¡Z°!¡^Ö4�DÜ')§y¢y°¸"±9¸TÀA¹XÐ3EØ37¸"±9¸TÀA¹XÐ3Eð4Fñ 2Gó (H�D˜t˜Ó$ó 5ñ 1ð ˆKr   rC  rÿ   rÕ   rº   ©r.  r.  r"   rC  N)r}   rœ   Úuint32r�   rÞ  r*  s   `    @r   Útest_basic94ÚTestManyStencils.test_basic94A  s^   ù€ ò	,ö
	ô �IŠI�b¤§	¡	Ñ*×2Ñ2°1°aÓ8ˆØ ˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   znot yet supportedc                 ó
   • S ng)zSlice, calculate neighborhood. c                 ó@   • [         R                  " U SS2SS24   5      $ )Nr   r1   r®  rÕ   r8  r   s    r   rm  Ú-TestManyStencils.test_basic95.<locals>.kernel[  r;  r   Nr   r¸  s     r   Útest_basic95ÚTestManyStencils.test_basic95X  s   € ó	,r   c                 óœ   ^ ^• S mUU 4S jn[         R                  " S[         R                  S9nSnU" X#5      nT R                  TXBSU0S9  g)	z
1D slice. c                 ó4   • [         R                  " U SS 5      $ r7  r8  r   s    r   rm  Ú-TestManyStencils.test_basic96.<locals>.kernela  s   € Ü—9’9˜Q˜r !˜WÓ%Ð%r   c                 ó  >• TR                  XS9  T" U 5      n[        R                  " U R                  S[	        U5      S9n[        SU R                  S   S-
  5       H$  n[        R                  " XS-   US-    5      X44'   M&     U$ r=  r>  )r   r"   rþ  rÿ  r&  rm  rU   s        €€r   r  Ú/TestManyStencils.test_basic96.<locals>.__kernelf  sy   ø€ Ø×%Ñ% aÐ%ÑCÙ ›ˆJÜ—7’7˜1Ÿ7™7 A¬T°*Ó-=Ñ>ˆDÜ˜a §¡¨¡¨a¡Ö0�Ü Ÿiši¨°©)°D¸1±HÐ(=Ó>��U“ñ 1àˆKr   rC  rÿ   )r.  r"   rC  N)r}   rœ   rA  rÞ  r*  s   `    @r   Útest_basic96ÚTestManyStencils.test_basic96_  sQ   ù€ ò	&ö
	ô �IŠI�b¤§	¡	Ñ*ˆØˆÙ˜A“?ˆØ×#Ñ# F¨HØ-;¸RÐ,@ð 	$ò 	Br   c                 ó
   • S ng)z2D slice and index. c                 ó<   • [         R                  " U SS2S4   5      $ )Nr   r1   rx   r8  r   s    r   rm  Ú-TestManyStencils.test_basic97.<locals>.kernelw  s   € Ü—9’9˜Q˜r !˜t Q˜w™ZÓ(Ð(r   Nr   r¸  s     r   Útest_basic97ÚTestManyStencils.test_basic97t  s   € ó	)r   c           	      ó>  ^ ^^• [         R                  [         R                  [         R                  * [        S5      [        S5      * 4 HQ  mS mUUU 4S jn[         R                  " S5      R                  S5      nSnU" X#5      nT R                  TXBUTS.S9  MS     g	)
rˆ  r‰  c                 ó   • U S   $ r<   r   r   s    r   rm  Ú-TestManyStencils.test_basic98.<locals>.kernel  s   € Ø˜‘w�r   c                 ó4  >• TR                  XS9  T" U 5      n[        R                  " U R                  T[	        U5      S9n[        SU R                  S   S-
  5       H6  n[        SU R                  S   S-
  5       H  nXS-   US-   4   X5U4'   M     M8     U$ )Nr!   rÿ   r   r   rû  )	r   r"   rþ  rÿ  r@  r&  r-   rm  rU   s	         €€€r   r  Ú/TestManyStencils.test_basic98.<locals>.__kernel„  s•   ø€ Ø×)Ñ)¨!Ð)ÑGÙ# A›Y�
Ü—w’w˜qŸw™w¨´D¸Ó4DÑE�Ü! ! Q§W¡W¨Q¡Z°!¡^Ö4�DÜ % a¨¯©°©°a©Ö 8˜Ø+,°A©X°t¸a±xÐ-?Ñ+@˜ 4˜ZÓ(ó !9ñ 5ð �r   g      @)r1   rx   r@  )r"   r-   rC  N)r}   r�  r‰  r�  rœ   r�   rÞ  )rU   r  r   r+  r„   r-   rm  s   `    @@r   Útest_basic98ÚTestManyStencils.test_basic98{  s‡   ú€ ô —V‘VœRŸV™V¤b§f¡f W¬e°E«l¼UÀ5»\¸MÓJˆDò÷
ô —	’	˜"“×%Ñ% fÓ-ˆAØ$ˆBÙ “ˆHØ×'Ñ'¨°ØACØ8<ñ1>ð (ó ?ò' Kr   r   )vrŠ   r‹   rŒ   r�   rT   rÞ  rç  rî  ró  r  r  r  r#  r*  r3  r;  rC  rM  rT  r\  rc  rj  rr  r{  r…  r�  r—  r¡  rª  r²  r¹  rÀ  rÎ  rÕ  rÜ  râ  rì  rõ  r   r  r  r  ÚunittestÚskipr  r$  r*  r2  r<  rD  rM  rV  r_  rf  rq  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,  r4  rF  rL  rS  rZ  rd  rm  rw  r  r†  r�  r”  r›  rª  r¶  r¾  rÃ  rÊ  rÐ  rÛ  rä  rï  rö  rü  r  r	  r  r  r  r,  r3  rB  rG  rN  rS  rZ  r�   r�   r‘   s   @r   r•  r•  }  sÐ  ø† õ@òX,òtd,ò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ò09ò.LòPò9ò29ò89ò,Mò9ò*9ð, ‡]‚]Ð5Ó6ñó 7ðò9ò*Mò9ò(9ò2Nò(Nò.?ò0
5ò<ò6<ò*QòQò<ò0PòPòPò?ò69ò4Hð. ‡]‚]Ð;Ó<ñ&ó =ð&òPòHò05òHò0Hò4Hò@Hò0Hò0Oò05ò<ò;ò.5òPòBò8Bò6Bò<	LòBò@Bò< BòDBòBBò6Bò6Bò6Bò6Bò8!BòFBò@Bò@Bò@5ò$Bò>5ò$Hò@"<òH9ò*9ò.Lò9ò(	Qò9ò<'<òR9ò49ò>Qò<Bð. ‡]‚]Ð&Ó'ñ,ó (ð,òBð* ‡]‚]Ð&Ó'ñ)ó (ð)÷?ð ?r   r•  Ú__main__)(Únumpyr}   Ú
contextlibr   rn   r   r   Ú
numba.corer   r   Únumba.core.compilerr   r	   Únumba.core.cpur
   Únumba.tests.supportr   r   Únumba.core.errorsr   r   r   r\  r“  r   r*   r2   r6   r:   r?   rB   rD   rG   rK   ÚTestCaserM   r“   r•  rŠ   Úmainr   r   r   Ú<module>rh     sp  ðó Ý %ã ß ß &ß 4Ý *ß @ß IÑ IÛ ð ,Ð ð 	ñ<ó 	ð<ñ 	�kÑ"ñó #ðñ 	ˆcÑñó ðð 	ñ<ó 	ð<ð
 	ñ9ó 	ð9ð
 	ñ+ó 	ð+ñ 	˜6Ñ"ñ&ó #ð&ñ 	˜6Ñ"ñ9ó #ð9ð
 ñó ðö Ù	�4Ññó ðô4G�h×'Ñ'ô 4Gônt>�/ô t>ðn ôU(?�ó U(?ó ðU(?ðpP ˆzÓØ‡M‚M…Oð r   