§
    ƒÛgõ7  ã                   ób  — d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZmZ d dlmZmZmZmZmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z#m$Z$ d dl%m&Z&m'Z' d dl(m)Z)  edddddd¦  «        Z* G d„ de*e¦  «        Z+ G d„ de
¦  «        Z, e,¦   «         Z- G d„ dej.        ¦  «        Z/e/eed         <   d„ Z0d „ Z1d!„ Z2ej3        ej4        ej5        ej6        d"œZ7d#„ Z8ed$„ ¦   «         Z9 G d%„ d&e:¦  «        Z; G d'„ d(e;¦  «        Z< G d)„ d*e;¦  «        Z=d+„ Z>dS ),é    N)Úcontextmanager)ÚconfigÚtargetconfig)Újit)ÚTargetDescriptor)Ú	is_jitted)ÚNumbaDeprecationWarning)ÚTargetOptionsÚinclude_default_options)Ú
cpu_target)Údispatcher_registryÚtarget_registry)ÚutilsÚtypesÚ	serializeÚcompilerÚsigutils)Úas_dtype)Ú	_internal)Úparse_signature)Úbuild_ufunc_wrapperÚbuild_gufunc_wrapper)ÚFunctionCacheÚ	NullCache)Úglobal_compiler_lockÚnopythonÚforceobjÚboundscheckÚfastmathÚtarget_backendÚwritable_argsc                   ó   — e Zd Zd„ ZdS )ÚUFuncTargetOptionsc                 ój  — |                      d¦  «        sd|_        |                      d¦  «        sd|_        |                     dd¬¦  «         |                      d¦  «        st          j        |_        |                      d¦  «        s|j        |_        d|_        |                     d¦  «         d S )	NÚenable_pyobjectTÚenable_loopliftÚnrt)ÚdefaultÚ	debuginfor   r   )	Úis_setr%   r&   Úinherit_if_not_setr   ÚDEBUGINFO_DEFAULTr)   r   Úenable_pyobject_looplift)ÚselfÚflagsÚoptionss      úQ/granary/edev/quantum/lib/python3.11/site-packages/numba/np/ufunc/ufuncbuilder.pyÚfinalizezUFuncTargetOptions.finalize$   s³   € Ø�|Š|Ð-Ñ.Ô.ð 	)Ø$(ˆEÔ!à�|Š|Ð-Ñ.Ô.ð 	)Ø$(ˆEÔ!à× Ò  °Ð Ñ5Ô5Ð5à�|Š|˜KÑ(Ô(ð 	7Ý$Ô6ˆEŒOà�|Š|˜MÑ*Ô*ð 	0Ø %¤ˆEÔà)-ˆÔ&à× Ò  Ñ,Ô,Ð,Ð,Ð,ó    N)Ú__name__Ú
__module__Ú__qualname__r2   © r3   r1   r#   r#   "   s#   € € € € € ð-ð -ð -ð -ð -r3   r#   c                   óN   ‡ — e Zd ZeZˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zˆ xZ	S )ÚUFuncTargetc                 óJ   •— t          ¦   «                              d¦  «         d S )NÚufunc)ÚsuperÚ__init__)r.   Ú	__class__s    €r1   r=   zUFuncTarget.__init__;   s!   ø€ Ý‰Œ×Ò˜Ñ!Ô!Ð!Ð!Ð!r3   c                 ó   — t           j        S ©N)r   Útyping_context©r.   s    r1   rA   zUFuncTarget.typing_context>   ó   € åÔ(Ð(r3   c                 ó   — t           j        S r@   )r   Útarget_contextrB   s    r1   rE   zUFuncTarget.target_contextB   rC   r3   )
r4   r5   r6   r#   r0   r=   ÚpropertyrA   rE   Ú__classcell__)r>   s   @r1   r9   r9   8   ss   ø€ € € € € Ø €Gð"ð "ð "ð "ð "ð ð)ð )ñ „Xð)ð ð)ð )ñ „Xð)ð )ð )ð )ð )r3   r9   c                   óT   — e Zd ZdZeZi i fd„Zd„ Zed„ ¦   «         Z	d„ Z
i fd„Zd„ ZdS )	ÚUFuncDispatcherzK
    An object handling compilation of various signatures for a ufunc.
    c                 ó†   — || _         t          j        ¦   «         | _        || _        || _        t          ¦   «         | _        d S r@   )Úpy_funcr   Ú
UniqueDictÚ	overloadsÚtargetoptionsÚlocalsr   Úcache)r.   rK   rO   rN   s       r1   r=   zUFuncDispatcher.__init__P   s7   € ØˆŒÝÔ)Ñ+Ô+ˆŒØ*ˆÔØˆŒÝ‘[”[ˆŒ
ˆ
ˆ
r3   c                 óD   — t          | j        | j        | j        ¬¦  «        S )ú4
        NOTE: part of ReduceMixin protocol
        )ÚpyfuncrO   rN   )ÚdictrK   rO   rN   rB   s    r1   Ú_reduce_stateszUFuncDispatcher._reduce_statesW   s+   € õ Ø”<Ø”;ØÔ,ð
ñ 
ô 
ð 	
r3   c                 ó   —  | |||¬¦  «        S )rR   )rK   rO   rN   r7   )ÚclsrS   rO   rN   s       r1   Ú_rebuildzUFuncDispatcher._rebuilda   s   € ð
 ˆs˜6¨&ÀÐNÑNÔNÐNr3   c                 ó8   — t          | j        ¦  «        | _        d S r@   )r   rK   rP   rB   s    r1   Úenable_cachingzUFuncDispatcher.enable_cachingh   s   € Ý" 4¤<Ñ0Ô0ˆŒ
ˆ
ˆ
r3   c                 óx  — | j                              ¦   «         }|                     |¦  «         | j                             ¦   «         }|                     |¦  «         t	          j        ¦   «         }| j        j                             ||¦  «         d|_	        d|_
        d|_        |                      |||¦  «        S )NTÚnumpyF)rO   ÚcopyÚupdaterN   r   ÚFlagsÚtargetdescrr0   Úparse_as_flagsÚno_cpython_wrapperÚerror_modelr&   Ú_compile_core)r.   ÚsigrO   rN   ÚlocsÚtoptr/   s          r1   ÚcompilezUFuncDispatcher.compilek   s¨   € ØŒ{×ÒÑ!Ô!ˆØ�Š�FÑÔÐàÔ!×&Ò&Ñ(Ô(ˆØ�Š�MÑ"Ô"Ð"å”Ñ Ô ˆØÔÔ ×/Ò/°°tÑ<Ô<Ð<à#'ˆÔ Ø#ˆÔð !&ˆÔà×!Ò! # u¨fÑ5Ô5Ð5r3   c                 óä  ‡ ‡	— ‰ j         j        }‰ j         j        }t          ˆ	ˆ fd„¦   «         }t          5  t          j        ¦   «                              |                     ¦   «         ¦  «        5   |¦   «         5  ‰ j	         
                    ||¦  «        Š	‰	�&‰	cddd¦  «         cddd¦  «         cddd¦  «         S t          j        |¦  «        \  }}t          j        ||‰ j        ||||¬¦  «        Š	‰ j	                             |‰	¦  «         ‰	cddd¦  «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )z•
        Trigger the compiler on the core function or load a previously
        compiled version from the cache.  Returns the CompileResult.
        c               3   ó˜   •K  — 	 d V — ‰j                              ‰j        ¦  «        } | €‰‰j         ‰j        <   d S d S # t          $ r ‚ w xY wr@   )rM   ÚgetÚ	signatureÚ	Exception)ÚexistsÚcresr.   s    €€r1   Ústore_overloads_on_successzAUFuncDispatcher._compile_core.<locals>.store_overloads_on_success†   sn   øè è € ð:Ø���ð œ×+Ò+¨D¬NÑ;Ô;�Ø�>Ø59�D”N 4¤>Ñ2Ð2Ð2ð "�>øõ	 ð ð ð Øðøøøs	   …= ½A	N)ÚargsÚreturn_typer/   rO   )r`   rA   rE   r   r   r   ÚConfigStackÚenterr]   rP   Úload_overloadr   Únormalize_signaturer   Úcompile_extrarK   Úsave_overload)
r.   re   r/   rO   Ú	typingctxÚ	targetctxrp   rq   rr   ro   s
   `        @r1   rd   zUFuncDispatcher._compile_core~   sÍ  øø€ ð
 Ô$Ô3ˆ	ØÔ$Ô3ˆ	å	ð		:ð 		:ð 		:ð 		:ð 		:ñ 
Œð		:õ "ð 	 ð 	 ÝÔ)Ñ+Ô+×1Ò1°%·*²*±,´,Ñ?Ô?ð  ð  Ø/Ð/Ñ1Ô1ð  ð  àœ:×3Ò3°C¸ÑCÔC�DØÐ'Ø#ð	 ð  ð  ð  ñ  ô  ð  ð ð  ð  ð  ñ  ô  ð  ð	 ð 	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 õ )1Ô(DÀSÑ(IÔ(IÑ%�D˜+Ý#Ô1°)¸YØ26´,ÀTØ>IØ8=ÀfðNñ Nô N�Dð ”J×,Ò,¨S°$Ñ7Ô7Ð7àð! ð  ð  ð  ñ  ô  ð  ð ð  ð  ð  ñ  ô  ð  ð	 ð 	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð ð  ð  ð  øøøð  ð  ð  ð  ð  ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 sr   µ9E%Á.EÁ9D5ÂEÂ$E%Â=AD5ÄEÄE%Ä5D9Ä9EÄ<D9Ä=EÅE%ÅE	ÅE%ÅE	ÅE%Å%E)Å,E)N)r4   r5   r6   Ú__doc__Úufunc_targetr`   r=   rU   ÚclassmethodrX   rZ   rh   rd   r7   r3   r1   rI   rI   J   s¢   € € € € € ðð ð €Kà')¸ð !ð !ð !ð !ð
ð 
ð 
ð ðOð Oñ „[ðOð1ð 1ð 1ð #%ð 6ð 6ð 6ð 6ð&' ð ' ð ' ð ' ð ' r3   rI   Únpyufuncc                 óV   —  | j         |fi |¤Ž}t          j        |¦  «        \  }}|||fS r@   )rh   r   rv   )Únb_funcrN   re   ro   rq   rr   s         r1   Ú_compile_element_wise_functionr�   ­   s?   € ð ˆ7Œ?˜3Ð0Ð0 -Ð0Ð0€DÝ Ô4°SÑ9Ô9Ñ€Dˆ+Ø��{Ð"Ð"r3   c                 óx   — |€"| j         rt          d¦  «        ‚| j        j        }|t          j        k    sJ ‚ ||Ž S )z¼Given a compilation result, argument types, and a return type,
    build a valid Numba signature after validating that it doesn't
    violate the constraints for the compilation mode.
    Nz-return type must be specified for object mode)Ú
objectmodeÚ	TypeErrorrl   rr   r   Úpyobject)ro   rq   rr   s      r1   Ú_finalize_ufunc_signaturer†   µ   sM   € ð
 ÐØŒ?ð 	5åÐKÑLÔLÐLàœ.Ô4ˆKà�%œ.Ò(Ð(Ð(Ð(Øˆ;˜ÐÐr3   c           	      ór  — | j         }| j        }| j        j        }t          5  t          ||||| j        | ¦  «        }|j                             |j        ¦  «        }ddd¦  «         n# 1 swxY w Y   d„ |j	        D ¦   «         }| 
                    t          |j        ¦  «        j        ¦  «         ||| j        fS )z�Build a wrapper for the ufunc loop entry point given by the
    compilation result object, using the element-wise signature.
    Nc                 ó6   — g | ]}t          |¦  «        j        ‘ŒS r7   )r   Únum)Ú.0Úas     r1   ú
<listcomp>z5_build_element_wise_ufunc_wrapper.<locals>.<listcomp>Ò   s    € Ð9Ð9Ð9 Q•˜!‘””Ð9Ð9Ð9r3   )rE   ÚlibraryÚfndescÚllvm_func_namer   r   rƒ   Úget_pointer_to_functionÚnamerq   Úappendr   rr   r‰   Úenvironment)ro   rl   Úctxr�   ÚfnameÚinfoÚptrÚ	dtypenumss           r1   Ú!_build_element_wise_ufunc_wrapperr™   Å   sö   € ð Ô
€CØŒl€GØŒKÔ&€Eå	ð >ð >Ý" 7¨C°¸	Ø#'¤?°Dñ:ô :ˆàŒl×2Ò2°4´9Ñ=Ô=ˆð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð
 :Ð9¨)¬.Ð9Ñ9Ô9€IØ×Ò•X˜iÔ3Ñ4Ô4Ô8Ñ9Ô9Ð9Ø�c˜4Ô+Ð+Ð+s   ¢9A'Á'A+Á.A+)r   é   NÚreorderablec                 ód   — 	 t           |          } n # t          $ r t          d| ›�¦  «        ‚w xY w| S )z]
    Parse an identity value and return the corresponding low-level value
    for Numpy.
    zInvalid identity value )Ú_identitiesÚKeyErrorÚ
ValueError)Úidentitys    r1   Úparse_identityr¡   ß   sM   € ð
DÝ˜xÔ(ˆˆøÝð Dð Dð DÝˆj¸¸ÐBÑCÔCÐCðDøøøà€Os   ‚ �-c               #   ó¢   K  — t          j        ¦   «         5  t          j        dt          d¬¦  «         dV — ddd¦  «         dS # 1 swxY w Y   dS )z÷This suppresses the NumbaDeprecationWarning that occurs through the use
    of `jit` without the `nopython` kwarg. This use of `jit` occurs in a few
    places in the `{g,}ufunc` mechanism in Numba, predominantly to wrap the
    "kernel" function.Úignorez3.*The 'nopython' keyword argument was not supplied*)ÚcategoryÚmessageN)ÚwarningsÚcatch_warningsÚfilterwarningsr	   r7   r3   r1   Ú3_suppress_deprecation_warning_nopython_not_suppliedr©   ë   s®   è è € õ 
Ô	 Ñ	"Ô	"ð ð ÝÔ Ý)@ð*=ð	@ñ 	@ô 	@ð 	@ð 	ˆˆˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   –!AÁAÁAc                   ó   — e Zd Zdd„Zd„ ZdS )Ú_BaseUFuncBuilderNc                 óø   — t          | d¦  «        r| j        }n| j        j        }t          | j        ||¦  «        \  }}}|                      |||¦  «        }| j                             |¦  «         || j        |<   |S )NrN   )ÚhasattrrN   r€   r�   Ú_finalize_signatureÚ_sigsr’   Ú_cres)r.   re   rN   ro   rq   rr   s         r1   Úaddz_BaseUFuncBuilder.addý   s„   € Ý�4˜Ñ)Ô)ð 	7Ø Ô.ˆMˆMà œLÔ6ˆMÝ"@ØŒL˜-¨ñ#.ô #.Ñˆˆd�Kà×&Ò& t¨T°;Ñ?Ô?ˆØŒ
×Ò˜#ÑÔÐØˆŒ
�3‰Øˆr3   c                 ó   — dS )zI
        Disable the compilation of new signatures at call time.
        Nr7   rB   s    r1   Údisable_compilez!_BaseUFuncBuilder.disable_compile	  s   € € € r3   r@   )r4   r5   r6   r±   r³   r7   r3   r1   r«   r«   û   s7   € € € € € ð
ð 
ð 
ð 
ðð ð ð ð r3   r«   c                   ó.   — e Zd Zddi fd„Zd„ Zd„ Zd„ ZdS )ÚUFuncBuilderNFc                 ó
  — t          |¦  «        r|j        }|| _        t          |¦  «        | _        t	          ¦   «         5   t          dd|dœ|¤Ž|¦  «        | _        d d d ¦  «         n# 1 swxY w Y   g | _        i | _        d S )Nr~   ©Ú_targetrP   r7   )	r   rK   r¡   r    r©   r   r€   r¯   r°   )r.   rK   r    rP   rN   s        r1   r=   zUFuncBuilder.__init__  sÝ   € Ý�WÑÔð 	&Ø”oˆGØˆŒÝ& xÑ0Ô0ˆŒÝ@ÑBÔBð 	9ð 	9ð0�3ð 0 zØ%*ð0ð 0à!.ð0ð 0à07ñ9ô 9ˆDŒLð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð ˆŒ
ØˆŒ
ˆ
ˆ
s   Á A*Á*A.Á1A.c                 ó$   — t          |||¦  «        S )z^Slated for deprecation, use ufuncbuilder._finalize_ufunc_signature()
        instead.
        )r†   ©r.   ro   rq   rr   s       r1   r®   z UFuncBuilder._finalize_signature  s   € õ )¨¨t°[ÑAÔAÐAr3   c                 ó²  — t           5  g }g }| j        st          d¦  «        ‚g }d }| j        D ]|}| j        |         }|                      ||¦  «        \  }}}|                     |¦  «         |                     t          |¦  «        ¦  «         |                     |j        |f¦  «         Œ}d gt          |¦  «        z  }	|€.t          j        | j        ¦  «        }
t          |
j        ¦  «        }nt          |j        j        ¦  «        }d}t          j        | j        j        | j        j        |||||	|| j        ¦	  «	        }|cd d d ¦  «         S # 1 swxY w Y   d S )NúNo definitionrš   )r   r€   r„   r¯   r°   Úbuildr’   Úintr�   ÚlenÚinspectÚgetfullargspecrK   rq   rl   r   Úfromfuncr4   r{   r    )r.   Ú	dtypelistÚptrlistÚ	keepalivero   re   r˜   r—   ÚenvÚdatlistÚargspecÚinctÚoutctr;   s                 r1   Úbuild_ufunczUFuncBuilder.build_ufunc$  s¦  € Ý!ð $	ð $	ØˆIØˆGØ”<ð 1Ý Ñ0Ô0Ð0ð ˆIØˆDØ”zð 6ð 6�Ø”z #”�Ø&*§j¢j°°sÑ&;Ô&;Ñ#�	˜3 Ø× Ò  Ñ+Ô+Ð+Ø—’�s 3™xœxÑ(Ô(Ð(Ø× Ò  $¤,°Ð!4Ñ5Ô5Ð5Ð5à�f�s 7™|œ|Ñ+ˆGàˆ|Ý!Ô0°´Ñ>Ô>�Ý˜7œ<Ñ(Ô(��å˜4œ>Ô.Ñ/Ô/�ØˆEõ Ô&Ø”Ô% t¤|Ô';Ø˜ D¨%°Ø˜4œ=ñô ˆEð ðI$	ð $	ð $	ð $	ñ $	ô $	ð $	ð $	ð $	ð $	ð $	ð $	øøøð $	ð $	ð $	ð $	ð $	ð $	s   ˆD7EÅEÅEc                 ó"   — t          ||¦  «        S )z^Slated for deprecation, use
        ufuncbuilder._build_element_wise_ufunc_wrapper().
        )r™   )r.   ro   rl   s      r1   r½   zUFuncBuilder.buildK  s   € õ 1°°yÑAÔAÐAr3   )r4   r5   r6   r=   r®   rË   r½   r7   r3   r1   rµ   rµ     se   € € € € € à)-°UÈ"ð 
ð 
ð 
ð 
ðBð Bð Bð%ð %ð %ðNBð Bð Bð Bð Br3   rµ   c                   ó@   — e Zd Zddi dfd„Zd„ Zed„ ¦   «         Zd„ ZdS )ÚGUFuncBuilderNFr7   c                 ó¤  ‡— || _         t          |¦  «        | _        t          ¦   «         5   t	          d|¬¦  «        |¦  «        | _        d d d ¦  «         n# 1 swxY w Y   || _        t          |¦  «        \  | _        | _	        || _
        || _        g | _        i | _        t          |¦  «        Št          ˆfd„|D ¦   «         ¦  «        | _        d S )Nr~   r·   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r7   r7   )rŠ   r‹   Útransform_args     €r1   rŒ   z*GUFuncBuilder.__init__.<locals>.<listcomp>c  s#   ø€ Ð#LÐ#LÐ#L¸ M M°!Ñ$4Ô$4Ð#LÐ#LÐ#Lr3   )rK   r¡   r    r©   r   r€   rl   r   ÚsinÚsoutrN   rP   r¯   r°   Ú_get_transform_argÚtupler!   )r.   rK   rl   r    rP   rN   r!   rÑ   s          @r1   r=   zGUFuncBuilder.__init__U  s  ø€ àˆŒÝ& xÑ0Ô0ˆŒÝ@ÑBÔBð 	Ið 	IØ?�3 z¸Ð?Ñ?Ô?ÀÑHÔHˆDŒLð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ià"ˆŒÝ-¨iÑ8Ô8ÑˆŒ�$”)Ø*ˆÔØˆŒ
ØˆŒ
ØˆŒ
å*¨7Ñ3Ô3ˆÝ"Ð#LÐ#LÐ#LÐ#L¸mÐ#LÑ#LÔ#LÑMÔMˆÔÐÐs   « AÁAÁAc                 óˆ   — |j         s)|j        j        t          j        k    rt          d¦  «        ‚|€t          j        } ||Ž S )Nz(gufunc kernel must have void return type)rƒ   rl   rr   r   Úvoidr„   rº   s       r1   r®   z!GUFuncBuilder._finalize_signaturee  sG   € ØŒð 	H 4¤>Ô#=ÅÄÒ#KÐ#KÝÐFÑGÔGÐGàÐÝœ*ˆKàˆ{˜DÐ!Ð!r3   c                 ó<  — g }g }| j         st          d¦  «        ‚g }| j        D ]{}| j        |         }|                      |¦  «        \  }}}|                     |¦  «         |                     t          |¦  «        ¦  «         |                     |j        |f¦  «         Œ|d gt          |¦  «        z  }	t          | j	        ¦  «        }
t          | j
        ¦  «        }t          j        | j        j        | j        j        |||
||	|| j        | j        | j        ¦  «        }|S )Nr¼   )r€   r„   r¯   r°   r½   r’   r¾   r�   r¿   rÒ   rÓ   r   rÂ   rK   r4   r{   r    rl   r!   )r.   Ú	type_listÚ	func_listrÅ   re   ro   r˜   r—   rÆ   ÚdatalistÚninÚnoutr;   s                r1   rË   zGUFuncBuilder.build_ufuncn  s  € àˆ	Øˆ	ØŒ|ð 	-Ý˜OÑ,Ô,Ð,ð ˆ	Ø”:ð 	2ð 	2ˆCØ”:˜c”?ˆDØ"&§*¢*¨TÑ"2Ô"2ÑˆI�s˜CØ×Ò˜YÑ'Ô'Ð'Ø×Ò�S ™XœXÑ&Ô&Ð&Ø×Ò˜dœl¨CÐ0Ñ1Ô1Ð1Ð1à�6�C 	™NœNÑ*ˆå�$”(‰mŒmˆÝ�4”9‰~Œ~ˆõ Ô"ØŒLÔ! 4¤<Ô#7Ø�y # t¨XØ�t”} d¤n°dÔ6Hñ
ô 
ˆð
 ˆr3   c                 óf  — |j         }t          | j        || j        | j        | j        d¬¦  «        }|j        }|j                             |j	        ¦  «        }g }|j
        D ]M}t          |t          j        ¦  «        r|j        }n|}|                     t!          |¦  «        j        ¦  «         ŒN|||fS )zJ
        Returns (dtype numbers, function ptr, EnvironmentObject)
        F)rP   Ú
is_parfors)rl   r   rK   rÒ   rÓ   rP   rÆ   r�   r�   r‘   rq   Ú
isinstancer   ÚArrayÚdtyper’   r   r‰   )	r.   ro   rl   r–   rÆ   r—   r˜   r‹   Útys	            r1   r½   zGUFuncBuilder.build‹  sº   € ð
 ”Nˆ	Ý#ØŒL˜$ ¤¨$¬)Ø”*¨ð
ñ 
ô 
ˆð
 ŒhˆØŒl×2Ò2°4´9Ñ=Ô=ˆàˆ	Ø”ð 	/ð 	/ˆAÝ˜!�Uœ[Ñ)Ô)ð Ø”W��à�Ø×Ò�X b™\œ\Ô-Ñ.Ô.Ð.Ð.Ø˜#˜sÐ"Ð"r3   )r4   r5   r6   r=   r®   r   rË   r½   r7   r3   r1   rÎ   rÎ   R  sr   € € € € € ð 59ÀØ!°ðNð Nð Nð Nð "ð "ð "ð ðð ñ Ôðð8#ð #ð #ð #ð #r3   rÎ   c                 ó~   ‡ ‡‡— t          j        ‰ ¦  «        j        Šd„ t          ‰¦  «        D ¦   «         Šˆˆˆ fd„}|S )z-Return function that transform arg into indexc                 ó   — i | ]\  }}||“Œ	S r7   r7   )rŠ   ÚiÚargs      r1   ú
<dictcomp>z&_get_transform_arg.<locals>.<dictcomp>¦  s   € Ð7Ð7Ð7™V˜Q �#�qÐ7Ð7Ð7r3   c                 óž   •— t          | t          ¦  «        r| S 	 ‰|          S # t          $ r  d| › d‰› d‰j        › �}t	          |¦  «        ‚w xY w)NzSpecified writable arg z not found in arg list z for function )rà   r¾   rž   r6   ÚRuntimeError)rç   Úmsgrq   Ú
pos_by_argrK   s     €€€r1   rÑ   z)_get_transform_arg.<locals>.transform_arg¨  s‰   ø€ Ý�c�3ÑÔð 	ØˆJð	$Ø˜c”?Ð"øÝð 	$ð 	$ð 	$ðA¨Sð Að AØðAð AØ*1Ô*>ðAð AˆCå˜sÑ#Ô#Ð#ð	$øøøs	   š" ¢*A)rÀ   rÁ   rq   Ú	enumerate)rK   rÑ   rq   rì   s   ` @@r1   rÔ   rÔ   £  s\   øøø€ åÔ! 'Ñ*Ô*Ô/€DØ7Ð7¥y°¡¤Ð7Ñ7Ô7€Jð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð Ðr3   )?rÀ   r¦   Ú
contextlibr   Ú
numba.corer   r   Únumba.core.decoratorsr   Únumba.core.descriptorsr   Únumba.core.extendingr   Únumba.core.errorsr	   Únumba.core.optionsr
   r   Únumba.core.registryr   Únumba.core.target_extensionr   r   r   r   r   r   r   Únumba.np.numpy_supportr   Únumba.np.ufuncr   Únumba.np.ufunc.sigparser   Únumba.np.ufunc.wrappersr   r   Únumba.core.cachingr   r   Únumba.core.compiler_lockr   Ú_options_mixinr#   r9   r|   ÚReduceMixinrI   r�   r†   r™   ÚPyUFunc_ZeroÚPyUFunc_OneÚPyUFunc_NoneÚPyUFunc_ReorderableNoner�   r¡   r©   Úobjectr«   rµ   rÎ   rÔ   r7   r3   r1   ú<module>r     sj  ðð €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %à +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø %Ð %Ð %Ð %Ð %Ð %Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø *Ð *Ð *Ð *Ð *Ð *Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ *Ð *Ð *Ð *Ð *Ð *Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ +Ð +Ð +Ð +Ð +Ð +Ø $Ð $Ð $Ð $Ð $Ð $Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ð )Ð(ØØØØØØñô €ð-ð -ð -ð -ð -˜¨ñ -ô -ð -ð,)ð )ð )ð )ð )Ð"ñ )ô )ð )ð ˆ{‰}Œ}€ð[ ð [ ð [ ð [ ð [ �iÔ+ñ [ ô [ ð [ ð| 4CÐ �O JÔ/Ñ 0ð
#ð #ð #ðð ð ð ,ð ,ð ,ð& ÔØÔØ
Ô
 ØÔ4ð	ð €ð	ð 	ð 	ð ð
ð 
ñ „ð
ðð ð ð ð ˜ñ ô ð ð*?Bð ?Bð ?Bð ?Bð ?BÐ$ñ ?Bô ?Bð ?BðDN#ð N#ð N#ð N#ð N#Ð%ñ N#ô N#ð N#ðbð ð ð ð r3   