ó
    „ñ:iCj  ã                   óP  • S SK Jr  S SK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  S SKJrJr  \" S/ S	Q5      rS
 rS rS rS rS rS r " S S\5      r\" S5      r " S S\5      r " S S\5      rS rS r " S S\5      r " S S\5      r  " S S\5      r! " S S \!5      r"g)!é    )Ú
namedtupleN)ÚConstantÚ	IRBuilder)Úir)ÚtypesÚcgutils)Úglobal_compiler_lock)Úmake_library_cacheÚ	NullCacheÚ_wrapper_info©ÚlibraryÚenvÚnamec                 ó  • U " 5       nUR                   R                  XCU	R                  U	R                  U5      u  pÞUR	                  UR
                  SS9 u  nnU   U" U5        S S S 5        U   U
R                  5       nUR                   R                  XJU5        U
R                  U5        S S S 5        S S S 5        [        Xu5       HA  u  nnUR                  UR                  UR                  U5      UR                  5      U5        MC     UR                  UR                  UR                  U5      UR                  5      U5        UR                  $ ! , (       d  f       Nõ= f! , (       d  f       N¾= f! , (       d  f       NÇ= f©NT©Úlikely)Ú	call_convÚcall_functionÚreturn_typeÚargsÚif_elseÚis_okÚ
gil_ensureÚraise_errorÚgil_releaseÚzipÚstoreÚaddÚloadÚstepÚcode)r!   r   ÚcontextÚfuncÚbuilderÚarraysÚoutÚoffsetsÚstore_offsetÚ	signatureÚpyapir   ÚelemsÚstatusÚretvalÚif_okÚif_errorÚgilÚoffÚarys                       ÚZ/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/np/ufunc/wrappers.pyÚ_build_ufunc_loop_bodyr6      s,  € á‹F€Eð ×&Ñ&×4Ñ4°WØ5>×5JÑ5JØ5>·^±^ÀUóL�N€Fð
 
�‰˜Ÿ™¨dˆÑ	3Ñ7H¸¸xÚÙ�&ŒM÷ âØ×"Ñ"Ó$ˆCØ×Ñ×)Ñ)¨'¸&ÔAØ×Ñ˜cÔ"÷ ÷ 
4ô ˜Ö(‰ˆˆSØ�‰�g—k‘k '§,¡,¨sÓ"3°S·X±XÓ>ÀÖDñ )ð ‡M�M�'—+‘+˜gŸl™l¨<Ó8¸#¿(¹(ÓCØô ð �;‰;Ð÷ �Uúç�Xú÷ 
4Õ	3ús<   ÁE6Á	EÁ%
E6Á/>E%Â-E6Å
E"	ÅE6Å%
E3	Å/E6Å6
Fc                 ó|  • U " 5       n[         R                  /[        U	R                  5      -  nUR	                  SS9   UR
                  R                  XC[         R                  XÜ5      u  pïU H  nUR                  U5        M     S S S 5        U" W5        [        Xu5       HA  u  nnUR                  UR                  UR                  U5      UR                  5      U5        MC     UR                  UR                  UR                  U5      UR                  5      U5        WR                  $ ! , (       d  f       N­= f)NT)Úkeep_new)r   ÚpyobjectÚlenr   Úerr_pushr   r   Údecrefr   r   r    r!   r"   r#   )r!   r   r$   r%   r&   r'   r(   r)   r*   r+   r   r,   r-   Ú_objargsr.   r/   Úelemr3   r4   s                      r5   Ú_build_ufunc_loop_body_objmoder?   ,   sý   € ñ ‹F€Eô —‘Ð¤# i§n¡nÓ"5Ñ5€Hð 
�‰ ˆÒ	&Ø ×*Ñ*×8Ñ8¸Ü9>¿¹Ø9AóJ‰ˆó ˆDØ�L‰L˜Öñ ÷ 
'ñ 
ˆ&„Mô ˜Ö(‰ˆˆSØ�‰�g—k‘k '§,¡,¨sÓ"3°S·X±XÓ>ÀÖDñ )ð ‡M�M�'—+‘+˜gŸl™l¨<Ó8¸#¿(¹(ÓCØô ð �;‰;Ð÷' 
'Õ	&ús   ¾AD-Ä-
D;c
                 óN   ^^^^^• UUU4S jn
UUU4S jn[        X«XTTTTTXxU	S9$ )Nc            	      ó�   >• [        TT5       V Vs/ s H%  u  pUR                  TR                  U 5      5      PM'     nn nU$ s  snn f ©N)r   Úload_directr!   )r3   r4   r-   r'   r&   r)   s      €€€r5   r!   Ú"build_slow_loop_body.<locals>.loadN   sH   ø€ ä!$ W¨fÔ!5ô7Ú!5‘X�Sð —‘ §¡¨cÓ!2Ö3Ù!5ð 	ñ 7àˆùó7s   ‘,Ac                 óH   >• TR                  U TR                  T5      5        g rB   )Ústore_directr!   )r/   r&   r(   r*   s    €€€r5   r   Ú#build_slow_loop_body.<locals>.storeS   s   ø€ Ø×Ñ˜ §¡¨lÓ!;Õ<ó    ©r   ©r6   )r$   r%   r&   r'   r(   r)   r*   r+   r,   r   r!   r   s     `````     r5   Úbuild_slow_loop_bodyrK   L   s0   ü€ ÷÷
=ô " $¨w¸gÀvØ"% w°¸iØ&)ñ+ð +rH   c                 ó¬   ^^^^^^^^• U R                  TU	5      nTR                  X«U	5      mUUUUUU4S jnUUUUU4S jn[        XÍXTTTTTTU	T5      $ )Nc            	      ó  >• [        TT5       V Vs/ s H%  u  pUR                  TR                  U 5      5      PM'     nn n[        UT
R                  5       VVs/ s H  u  p4T	R	                  XCT5      PM     nnnU$ s  snn f s  snnf rB   )r   rC   r!   r   Úfrom_native_value)r3   r4   r-   ÚvÚtr'   r&   Úenv_managerr)   r,   r+   s        €€€€€€r5   r!   Ú!build_obj_loop_body.<locals>.load`   s‹   ø€ ô "% W¨fÔ!5ô7Ú!5‘X�Sð —‘ §¡¨cÓ!2Ö3Ù!5ð 	ñ 7ô ! ¨	¯©Ô7ô9Ú7‘T�Qð ×(Ñ(¨¨{Ö;Ù7ð 	ñ 9àˆùó7ùó9s   ‘,A<ÁBc                 óV  >• [         R                  " TU 5      nTR                  USS9   TR                  TR                  U 5      nUR
                  b   eTR                  UR                  TR                  T5      5        TR                  U 5        S S S 5        g ! , (       d  f       g = fr   )
r   Úis_not_nullÚif_thenÚto_native_valuer   ÚcleanuprF   Úvaluer!   r<   )r/   r   Únativer&   r(   r,   r+   r*   s      €€€€€r5   r   Ú"build_obj_loop_body.<locals>.storei   s„   ø€ Ü×#Ò# G¨VÓ4ˆð �_‰_˜U¨4ˆ_Ò0à×*Ñ*¨9×+@Ñ+@À&ÓIˆFØ—>‘>Ñ)Ð)Ð)à×Ñ˜VŸ\™\¨7¯<©<¸Ó+EÔFà�L‰L˜Ô ÷ 1×0Ö0ús   ©A(BÂ
B()Úget_env_bodyÚget_env_managerr?   )r$   r%   r&   r'   r(   r)   r*   r+   r,   Úenvptrr   Úenv_bodyr!   r   rQ   s     ```````     @r5   Úbuild_obj_loop_bodyr_   [   sb   ÿ€ à×#Ñ# G¨VÓ4€HØ×'Ñ'¨°vÓ>€K÷ò ÷!ñ !ô *¨$°wÀgØ*0°#°wÀØ*3°V¸UóDð DrH   c                 óD   ^^^• UU4S jnUU4S jn[        X¼XUTTXVXyU
S9$ )Nc                  óT   >• T V s/ s H  n U R                  T5      PM     nn U$ s  sn f rB   )Úload_aligned)r4   r-   r'   Úinds     €€r5   r!   Ú"build_fast_loop_body.<locals>.load}   s8   ø€ á"ó$Ú"�Sð ×!Ñ! #Ö&Ù"ð 	ð $àˆùò$s   †%c                 ó*   >• TR                  U T5        g rB   )Ústore_aligned)r/   rc   r(   s    €€r5   r   Ú#build_fast_loop_body.<locals>.store‚   s   ø€ Ø×Ñ˜& #Õ&rH   rI   rJ   )r$   r%   r&   r'   r(   r)   r*   r+   rc   r,   r   r!   r   s      ``   `    r5   Úbuild_fast_loop_bodyrh   {   s.   ú€ öö
'ô " $¨w¸gÀvØ"% w¸iØ&)ñ+ð +rH   c                 ó¾
  • [        U[        5      (       d   e[        R                  " S5      n[        R                  " U5      n[        R                  " U5      nUR                  [        R                  5      n	[        R                  " U	5      n
[        R                  " [        R                  " 5       XŠX§/5      nUR                  5       R                  S5      nUR                  S5      nU(       aP  UR                  R                  [        R                  [        R                  /[!        UR"                  5      -  5      nO0UR                  R                  UR$                  UR"                  5      n[        R&                  " XÞUS9nUR(                  R+                  S5        [        R&                  " XÛSUR,                  -   5      nUR"                  u  nnnnSUl        SUl        S	Ul        S
Ul        [/        UR1                  S5      5      nUR3                  UR4                  5      nUR6                  nUR9                  UR;                  UR<                  U5      5      nUR9                  USS9n/ n[?        UR"                  5       H%  u  nnURA                  [C        UUUUUU5      5        M'     [C        UUUU[!        U5      UR$                  5      n/ nURE                  [        R                  S5      nU H=  n [F        RH                  " UU	5      n!URA                  U!5        URK                  UU!5        M?     [F        RH                  " UU	5      n"URK                  UU"5        [F        RL                  n#U H  n$URO                  U#U$RP                  5      n#M!     URS                  U5      n%U(       ae  U%RU                  5       n&[F        RV                  " UUU	S9   [Y        XUUUUU"UU%UU5        SSS5        U%R[                  U&5        UR]                  5         O®UR_                  U#5       u  n'n(U'   [F        RV                  " UUU	S9 n)[a        XUUUUU"UU)Rb                  U%US9  SSS5        SSS5        U(   [F        RV                  " UUU	S9   [e        XUUUUU"UU%US9
  SSS5        SSS5        SSS5        UR]                  5         AURg                  U5        URi                  U 5        [k        UUUR,                  S9$ ! , (       d  f       GN= f! , (       d  f       N³= f! , (       d  f       N¼= f! , (       d  f       Nš= f! , (       d  f       N£= f! , (       d  f       N¬= f)zm
Wrap the scalar function with a loop that iterates over the arguments

Returns
-------
(library, env, name)
é   Úufunc_wrapperÚ ©r   Úalwaysinlinez
__ufunc__.r   ÚdimsÚstepsÚdataÚentryÚ	loopcountr   ©ÚintpNrI   r   )6Ú
isinstanceÚstrr   ÚIntTypeÚPointerTypeÚget_value_typer   ru   ÚFunctionTypeÚVoidTypeÚcodegenÚcreate_libraryÚcreate_ir_moduler   Úget_function_typer9   r:   r   r   ÚFunctionÚ
attributesr    r   r   Úappend_basic_blockÚget_env_nameÚfndescÚenvironmentr!   Údeclare_env_globalÚmoduleÚ	enumerateÚappendÚ	UArrayArgÚget_constantr   Úalloca_oncer   Útrue_bitÚand_Úis_unit_stridedÚget_python_apir   Ú	for_ranger_   r   Úret_voidr   rh   ÚindexrK   Úadd_ir_moduleÚadd_linking_libraryr   )*r   r$   Úfnamer+   ÚobjmodeÚcresÚbyte_tÚ
byte_ptr_tÚbyte_ptr_ptr_tÚintp_tÚ
intp_ptr_tÚfntyÚ
wrapperlibÚwrapper_moduleÚ	func_typer%   ÚwrapperÚarg_argsÚarg_dimsÚ	arg_stepsÚarg_datar&   Úenvnamer   r]   rs   r'   ÚiÚtypr(   r)   ÚzeroÚ_Úpr*   Úunit_stridedr4   r,   r2   r�   Ú
is_stridedÚloops*                                             r5   Úbuild_ufunc_wrapperr±   Š   si  € ô �eœS×!Ñ!Ð!Ð!Ü�ZŠZ˜‹]€FÜ—’ Ó'€JÜ—^’^ JÓ/€NØ×#Ñ#¤E§J¡JÓ/€FÜ—’ Ó'€Jä�?Š?œ2Ÿ;š;›=¨>Ø+5ð+Có D€Dð —‘Ó"×1Ñ1°/ÓB€JØ×0Ñ0°Ó4€NÞØ×%Ñ%×7Ñ7Ü�N‰NœUŸ^™^Ð,¬s°9·>±>Ó/BÑBóD‰	ð ×%Ñ%×7Ñ7Ø×!Ñ! 9§>¡>ó3ˆ	ô �;Š;�~°uÑ=€DØ‡O�O×Ñ˜Ô'ä�kŠk˜.°¸t¿y¹yÑ0HÓI€GØ.5¯l©lÑ+€Hˆh˜	 8Ø€H„MØ€H„MØ€I„NØ€H„Mä˜×2Ñ2°7Ó;Ó<€Gð ×"Ñ" 4§;¡;Ó/€GØ
×
Ñ
€CØ�\‰\˜'×4Ñ4°W·^±^ÀWÓMÓN€Fð —‘˜X¨K�Ð8€Ið €FÜ˜IŸN™NÖ+‰ˆˆ3Ø�‰”i ¨°(¸IÀqÈ#ÓNÖOñ ,ô �G˜W h°	¼3¸v»;Ø×)Ñ)ó+€Cð €GØ×Ñ¤§
¡
¨AÓ.€DÛˆÜ×Ò ¨Ó0ˆØ�‰�qÔØ�‰�d˜AÖñ ô
 ×&Ò& w°Ó7€LØ‡M�M�$˜Ô%ä×#Ñ#€LÛˆØ—|‘| L°#×2EÑ2EÓFŠñ ð ×"Ñ" 7Ó+€EÞà×ÑÓ ˆÜ×Ò˜w¨	¸Ó?ÜØ˜w¨°°WØ˜i¨°¸ô÷ @ð
 	×Ñ˜#ÔØ×ÑÕð �_‰_˜\Ô*Ñ.K¨À
Ú Ü×&Ò& w°	ÀÒGÈ4Ü(Ø w°¸¸WØ$ i°·±¸UØ"ò÷ H÷ !ò ä×&Ò& w°	ÀÓGÜ(Ø w°¸¸WØ$ i°Ø"ò÷ H÷ ÷ +ð$ 	×ÑÔØð ×Ñ˜^Ô,Ø×"Ñ" 7Ô+Ü °¸7¿<¹<ÑHÐH÷C @Ö?ú÷ HÕGú÷ !•ú÷ HÕGú÷ •ú÷ +Õ*úsx   ÏS8Ð#UÐ)TÑ T
ÑTÑ%
UÑ/T=ÒT,ÒT=Ò UÓ8
TÔ

TÔTÔ
T)	Ô%UÔ,
T:Ô6T=Ô=
U	ÕUÕ
Uc                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	r‹   éù   c                 óÂ  • Xl         X l        X`l        U R                   R                  [        R
                  U5      nU R                  R                  UR                  X7/5      5      nUR                  U5      n	U R                  R                  UU	R                  5       5      U l        U R                   R                  U	5      n
U R                   R                  [        R
                  U
5      U l        U R                  R                  XG/5      nU R                  R                  U5      U l        UR                  SU R                  U R                  5      U l        X l        g )Nz==)r$   r&   Úfe_typerŒ   r   ru   r!   ÚgepÚget_data_typeÚbitcastÚ
as_pointerÚdataptrÚget_abi_sizeofÚabisizer"   Úicmp_unsignedr�   )Úselfr$   r&   r   rp   r©   rµ   ÚoffsetÚoffseted_argsÚ	data_typeÚsizeofÚoffseted_steps               r5   Ú__init__ÚUArrayArg.__init__ú   s  € ØŒØŒØŒØ—‘×*Ñ*¬5¯:©:°qÓ9ˆØŸ™×)Ñ)¨'¯+©+°d¸HÓ*EÓFˆØ×)Ñ)¨'Ó2ˆ	Ø—|‘|×+Ñ+¨MØ,5×,@Ñ,@Ó,BóDˆŒà—‘×,Ñ,¨YÓ7ˆØ—|‘|×0Ñ0´·±¸VÓDˆŒØŸ™×(Ñ(¨°Ó9ˆØ—L‘L×%Ñ% mÓ4ˆŒ	Ø&×4Ñ4°TØ59·\±\À4Ç9Á9ó NˆÔà�rH   c                 ó¼   • [         R                  " U R                  U R                  U5      nU R                  R                  U R                  U R                  U5      $ )zU
Generic load from the given *byteoffset*.  load_aligned() is
preferred if possible.
)r   Úpointer_addr&   rº   r$   Úunpack_valuerµ   )r¾   Ú
byteoffsetÚptrs      r5   rC   ÚUArrayArg.load_direct  sA   € ô
 ×!Ò! $§,¡,°·±¸jÓIˆØ�|‰|×(Ñ(¨¯©°t·|±|ÀSÓIÐIrH   c                 ó²   • U R                   R                  U R                  U/5      nU R                  R	                  U R                   U R
                  U5      $ rB   )r&   r¶   rº   r$   rÈ   rµ   )r¾   rc   rÊ   s      r5   rb   ÚUArrayArg.load_aligned  sA   € ð �l‰l×Ñ˜tŸ|™|¨c¨UÓ3ˆØ�|‰|×(Ñ(¨¯©°t·|±|ÀSÓIÐIrH   c                 ó¾   • [         R                  " U R                  U R                  U5      nU R                  R                  U R                  U R                  X5        g rB   )r   rÇ   r&   rº   r$   Ú
pack_valuerµ   )r¾   rX   rÉ   rÊ   s       r5   rF   ÚUArrayArg.store_direct  s<   € Ü×!Ò! $§,¡,°·±¸jÓIˆØ�‰×Ñ §¡¨d¯l©l¸EÕGrH   c                 ó´   • U R                   R                  U R                  U/5      nU R                  R	                  U R                   U R
                  X5        g rB   )r&   r¶   rº   r$   rÏ   rµ   )r¾   rX   rc   rÊ   s       r5   rf   ÚUArrayArg.store_aligned  s<   € Ø�l‰l×Ñ˜tŸ|™|¨c¨UÓ3ˆØ�‰×Ñ §¡¨d¯l©l¸EÕGrH   )r¼   r&   r$   rº   rµ   r�   r"   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rÄ   rC   rb   rF   rf   Ú__static_attributes__© rH   r5   r‹   r‹   ù   s   † òò"JòJòHõHrH   r‹   Úgufc                   ó®   • \ rS rSrS r\S 5       r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       rS	 rS
 rS r\S 5       rS rS rS rSrg)Ú_GufuncWrapperi%  c                 óþ   • Xl         X l        X0l        X@l        U R                  R
                  [        R                  :H  U l        U(       a  [        U R                   S9O	[        5       U l        [        U5      U l        g)a  
The *is_parfors* argument is a boolean that indicates if the GUfunc
being built is to be used as a ParFors kernel. If True, it disables
the caching on the wrapper as a separate unit because it will be linked
into the caller function and cached along with it.
)Úpy_funcN)rÝ   r™   ÚsinÚsoutr+   r   r   r9   Úis_objectmodeÚGufWrapperCacher   ÚcacheÚboolÚ
is_parfors)r¾   rÝ   r™   rÞ   rß   râ   rä   s          r5   rÄ   Ú_GufuncWrapper.__init__&  s\   € ð ŒØŒ	ØŒØŒ	Ø!Ÿ^™^×7Ñ7¼5¿>¹>ÑIˆÔæô &¨d¯l©lÒ;Ü$-£Kð 	Œ
ä˜zÓ*ˆ�rH   c                 ó.   • U R                   R                  $ rB   )r™   r   ©r¾   s    r5   r   Ú_GufuncWrapper.library6  s   € à�y‰y× Ñ Ð rH   c                 ó.   • U R                   R                  $ rB   )r™   Útarget_contextrç   s    r5   r$   Ú_GufuncWrapper.context:  s   € à�y‰y×'Ñ'Ð'rH   c                 ó.   • U R                   R                  $ rB   )r$   r   rç   s    r5   r   Ú_GufuncWrapper.call_conv>  s   € à�|‰|×%Ñ%Ð%rH   c                 ó.   • U R                   R                  $ rB   )r™   r+   rç   s    r5   r+   Ú_GufuncWrapper.signatureB  s   € à�y‰y×"Ñ"Ð"rH   c                 ó.   • U R                   R                  $ rB   )r™   r…   rç   s    r5   r…   Ú_GufuncWrapper.fndescF  s   € à�y‰y×ÑÐrH   c                 ó.   • U R                   R                  $ rB   )r™   r†   rç   s    r5   r   Ú_GufuncWrapper.envJ  s   € à�y‰y×$Ñ$Ð$rH   c                 ó`  • [         R                  " S5      n[         R                  " U5      n[         R                  " U5      nU R                  R	                  [
        R                  5      n[         R                  " U5      n[         R                  " [         R                  " 5       X5XR/5      nU$ )Nrj   )	r   rx   ry   r$   rz   r   ru   r{   r|   )r¾   rš   r›   rœ   r�   rž   rŸ   s          r5   Ú_wrapper_function_typeÚ%_GufuncWrapper._wrapper_function_typeN  sx   € Ü—’˜A“ˆÜ—^’^ FÓ+ˆ
ÜŸš¨
Ó3ˆØ—‘×,Ñ,¬U¯Z©ZÓ8ˆÜ—^’^ FÓ+ˆ
ä�ŠœrŸ{š{›}¨~Ø/9ð/Gó HˆàˆrH   c                 ó4  • U R                   R                  [        R                  5      nU R	                  5       nUR                  S5      nU R                  R                  U R                  R                  U R                  R                  5      nU R                  R                  n[        R                  " XVUS9nUR                  R                  S5        [        R                  " XTU5      n	SU	l        U	R"                  u  p«pÍSU
l        SUl        SUl        SUl        ['        U	R)                  S	5      5      nUR+                  US
S9nU R                   R-                  U5      n[/        5       nU R0                  U R2                  4 H  nU H  nU[/        U5      -  nM     M     0 nU R0                   H"  nU H  nUU;  d  M  [5        U5      UU'   M     M$     0 nUR7                  5        HV  u  nnUR+                  UR9                  UU R                   R;                  [        R                  US-   5      /5      5      UU'   MX     / n[5        U R0                  5      [5        U R2                  5      -   n[=        [?        U R@                  R"                  U R0                  U R2                  -   5      5       HD  u  nu  nn[C        U R                   XêUUUUUU5	      nU[5        U5      -  nURE                  U5        MF     UR)                  S5      nU RG                  UU5        [H        RJ                  " XïUS9 nU Vs/ s H  nURM                  URN                  5      PM      n nU RQ                  UUUU 5      u  n!n"[H        RR                  " UU"U5        SSS5        URU                  U5        URW                  U5        U RY                  UU5        UR[                  5         UR]                  U5        UR_                  U R`                  5        gs  snf ! , (       d  f       N„= f)zÅ
The LLVM IRBuilder code to create the gufunc wrapper.
The *library* arg is the CodeLibrary to which the wrapper should
be added.  The *name* arg is the name of the wrapper function being
created.
Ú_gufunc_wrapperrm   rn   Úweak_odrr   ro   rp   rq   rr   rs   é   z.returnrt   N)1r$   rz   r   ru   rõ   r   r   r€   r…   ÚrestypeÚargtypesÚllvm_func_namer   r�   r‚   r    Úlinkager   r   r   rƒ   r!   r‘   ÚsetrÞ   rß   r:   Úitemsr¶   rŒ   r‰   r   r+   Ú
GUArrayArgrŠ   Úgen_prologuer   r’   Úget_array_at_offsetr”   Úgen_loop_bodyÚcbranch_or_continueÚbranchÚposition_at_endÚgen_epiloguer“   r•   r–   r   )#r¾   r   r   r�   rŸ   r¡   r¢   r—   r%   r£   r¤   r¥   r¦   r§   r&   rs   r,   Úunique_symsÚgrpÚsymsÚsym_mapÚsÚsym_dimr©   r'   Ústep_offsetrª   Úsymr4   Úbbreturnr°   Úar   Ú	innercallÚerrors#                                      r5   Ú_build_wrapperÚ_GufuncWrapper._build_wrapperY  sv  € ð —‘×,Ñ,¬U¯Z©ZÓ8ˆØ×*Ñ*Ó,ˆà ×1Ñ1Ð2CÓDˆØ—N‘N×4Ñ4°T·[±[×5HÑ5HØ59·[±[×5IÑ5IóKˆ	à—‘×*Ñ*ˆÜ�{Š{˜>¸5ÑAˆà�‰×Ñ˜NÔ+Ü—+’+˜n°DÓ9ˆð %ˆŒØ29·,±,Ñ/ˆ˜IØˆŒØˆŒØ ˆ	ŒØˆŒä˜G×6Ñ6°wÓ?Ó@ˆØ—L‘L °�LÐ<ˆ	Ø—‘×+Ñ+¨GÓ4ˆô “eˆØ—H‘H˜dŸi™iÓ(ˆCÛ�Øœs 4›yÑ(’ó ñ )ð ˆØ—H”HˆDÛ�Ø˜GÕ#Ü!$ W£�G˜A“Jó ñ ð
 ˆØ—M‘M–O‰DˆAˆqØ Ÿ™ g§k¡k°(Ø37·<±<×3LÑ3LÜ6;·j±jØ67¸!±eó4=ð 3>ó'?ó @ˆG�A‹Jñ $ð ˆÜ˜$Ÿ(™(“m¤c¨$¯)©)£nÑ4ˆÜ&¤s¨4¯>©>×+>Ñ+>Ø+/¯8©8°d·i±iÑ+?ó(Aö B‰MˆA‰z��Sä˜TŸ\™\¨7Ø&¨¨;¸¸SÀ'óKˆCàœ3˜s›8Ñ#ˆKØ�M‰M˜#ÖñBð ×-Ñ-¨iÓ8ˆð 	×Ñ˜' 5Ô)ô ×Ò˜w¸Ò?À4Ù?EÓFºv¸!�A×)Ñ)¨$¯*©*Ö5¹vˆDÐFØ#×1Ñ1°'¸5À$ÈÓMÑˆI�uä×'Ò'¨°¸ÔA÷	 @ð 	�‰�xÔ Ø×Ñ Ô)ð 	×Ñ˜' 5Ô)à×ÑÔð 	×Ñ˜nÔ-Ø×#Ñ# D§L¡LÕ1ùò G÷ @Õ?ús   Ì0P	Ì5%PÍ1P	ÐP	Ð	
Pc                 óF  • U R                   (       aE  U R                  R                  5       R                  [	        U 5      5      nU R                  X!5        U$ U R                  R                  U R                  R                  U R                  R                  5      nUcƒ  U R                  R                  5       R                  [	        U 5      5      nUR                  5         U R                  X!5        U R                  R                  U R                  R                  U5        U$ rB   )rä   r$   r}   r~   rw   r  râ   Úload_overloadr™   r+   rê   Úenable_object_cachingÚsave_overload©r¾   Úwrapper_namer    s      r5   Ú_compile_wrapperÚ_GufuncWrapper._compile_wrapper­  sÖ   € à�?�?àŸ™×-Ñ-Ó/×>Ñ>¼sÀ4»yÓIˆJà×Ñ 
Ô9ð  Ðð Ÿ™×1Ñ1Ø—	‘	×#Ñ# T§Y¡Y×%=Ñ%=óˆJð Ñ!à!Ÿ\™\×1Ñ1Ó3×BÑBÄ3ÀtÃ9ÓM�
Ø×0Ñ0Ô2à×#Ñ# JÔ=à—
‘
×(Ñ(¨¯©×)<Ñ)<¸jÔIàÐrH   c                 ó~   • SU R                   R                  -   nU R                  U5      n[        X R                  US9$ )Nz__gufunc__.r   )r…   Úmangled_namer  r   r   r  s      r5   ÚbuildÚ_GufuncWrapper.buildÅ  s<   € à$ t§{¡{×'?Ñ'?Ñ?ˆØ×*Ñ*¨<Ó8ˆ
ÜØ§H¡H°<ñ
ð 	
rH   c                 ó¸  • U R                   R                  XU R                  R                  U R                  R                  U5      u  pVUR                  UR                  SS9   UR                  5       nU R                  R                   R                  XU5        UR                  U5        S S S 5        UR                  UR                  4$ ! , (       d  f       N&= f)NFr   )r   r   r+   r   r   rU   Úis_errorr   r$   r   r   r#   )r¾   r&   r,   r%   r   r.   r/   r2   s           r5   r  Ú_GufuncWrapper.gen_loop_bodyÍ  s¥   € ØŸ™×5Ñ5Ø˜4Ÿ>™>×5Ñ5°t·~±~×7JÑ7JØó‰ˆð �_‰_˜VŸ_™_°Uˆ_Ò;Ø×"Ñ"Ó$ˆCØ�L‰L×"Ñ"×.Ñ.¨w¸vÔFØ×Ñ˜cÔ"÷ <ð
 �{‰{˜FŸO™OÐ+Ð+÷ <Õ;ús   Á#ACÃ
Cc                 ó   • g rB   rØ   ©r¾   r&   r,   s      r5   r  Ú_GufuncWrapper.gen_prologueÙ  ó   € ØrH   c                 ó   • g rB   rØ   r'  s      r5   r  Ú_GufuncWrapper.gen_epilogueÜ  r)  rH   )râ   r™   rà   rä   rÝ   rÞ   rß   N)rÓ   rÔ   rÕ   rÖ   rÄ   Úpropertyr   r$   r   r+   r…   r   rõ   r  r  r	   r!  r  r  r  r×   rØ   rH   r5   rÛ   rÛ   %  s³   † ò+ð  ñ!ó ð!ð ñ(ó ð(ð ñ&ó ð&ð ñ#ó ð#ð ñ ó ð ð ñ%ó ð%ò	òR2òhð0 ñ
ó ð
ò
,òõrH   rÛ   c                   ó&   • \ rS rSrS rS rS rSrg)Ú_GufuncObjectWrapperià  c                 óR   • [        U R                  XUU R                  U5      u  pVXV4$ rB   )Ú_prepare_call_to_object_moder$   r+   )r¾   r&   r,   r%   r   r  r  s          r5   r  Ú"_GufuncObjectWrapper.gen_loop_bodyá  s/   € Ü7¸¿¹Ø8?ÈØ8<¿¹Ø8<ó>Ñˆ	ð ÐÐrH   c                 ó.   • UR                  5       U l        g rB   )r   r2   r'  s      r5   r  Ú!_GufuncObjectWrapper.gen_prologueè  s   € à×#Ñ#Ó%ˆ�rH   c                 ó:   • UR                  U R                  5        g rB   )r   r2   r'  s      r5   r  Ú!_GufuncObjectWrapper.gen_epilogueì  s   € à×Ñ˜$Ÿ(™(Õ#rH   )r2   N)rÓ   rÔ   rÕ   rÖ   r  r  r  r×   rØ   rH   r5   r.  r.  à  s   † ò ò&õ$rH   r.  c           	      óš   • UR                   nUR                  [        R                  :X  a  [        O[
        nU" XX#XES9R                  5       $ )N)rä   )r+   r   r   r9   r.  rÛ   r!  )rÝ   r™   rÞ   rß   râ   rä   r+   Úwrapclss           r5   Úbuild_gufunc_wrapperr8  ñ  sG   € Ø—‘€Ià×'Ñ'¬5¯>©>Ó9õ $ä"ð ñ Ø�s %ñç�eƒgðrH   c           
      ó
  • UR                   nUR                  S5      nU R                  [        R                  5      nU R                  [        R
                  5      n	[        R                  " U	5      n
U R                  [        R                  5      nU R                  [        R                  5      n[        R                  " XÈU
X«Xˆ/5      n[        R                  " XmS5      n[        R                  " U[        R                  " S5      SS9nUR                  [        R                   U5        / n/ n[#        [%        XTR&                  5      5       GHÐ  u  nu  nn[        R                  " XSS9nUR)                  U5        [+        U[        R,                  5      (       Ga
  U R/                  U5      nU" XUS9n[1        US	5      n[1        UUR2                  5      nUR5                  UR7                  S
5      UU/5      nUR5                  UR7                  S5      UU/5      nUR9                  UR:                  U5      n[<        R>                  " [A        UR>                  5      5      n[1        UURB                  5      n[1        UURD                  5      nURG                  UUUUUUU/5      n OURI                  UU5      n UR                  U U5        UR)                  U 5        [        RJ                  " UU 5      n!UR                  U!U5        [        RL                  " UU!U5        GMÓ     [        R                  /[O        U5      -  n"U RP                  RS                  X[        R                  U"U5      u  n#n$UR                  U#RT                  U5        URW                  U$5        URY                  U5        UR[                  U5        U H#  nURW                  UR]                  U5      5        M%     U#R^                  n%U%UR]                  U5      4$ )Nzufunc.core.returnÚnumba_ndarray_newrú   r  rm   T)Úzfill)rX   r   ÚshapeÚstrides)0rˆ   rƒ   rz   r   Úint32ru   r   ry   Úvoidptrr9   r{   r   Úget_or_insert_functionr�   rx   r   rŽ   r‰   r   r   rŠ   rv   ÚArrayÚ
make_arrayr   Úndimr¶   Ú_get_ptr_by_namer¸   rq   ÚnpÚdtyperw   ÚnumÚitemsizeÚcallrN   Úis_nullr  r:   r   r   r$  r<   r  r  r!   r#   )&r$   r&   r,   r%   r+   r   ÚmodÚbb_core_returnÚll_intÚll_intpÚll_intp_ptrÚ
ll_voidptrÚll_pyobjrŸ   Úfn_array_newÚerror_pointerÚobject_argsÚobject_pointersr©   ÚargÚargtyÚobjptrÚaryclsÚarrayr«   Úndro   r=  rq   rF  Útype_numrH  ÚobjÚobj_is_nullÚ
object_sigr.   r/   r  s&                                         r5   r0  r0  û  sO  € à
�.‰.€Cà×/Ñ/Ð0CÓD€Nð ×#Ñ#¤E§K¡KÓ0€FØ×$Ñ$¤U§Z¡ZÓ0€GÜ—.’. Ó)€KØ×'Ñ'¬¯©Ó6€JØ×%Ñ%¤e§n¡nÓ5€HÜ�?Š?˜8¨kØ&1Ø&,ð&6ó 7€Dô ×1Ò1°#Ø2EóG€Lô ×'Ò'¨´·²¸A³ÀWÑM€MØ‡M�M”'×"Ñ" MÔ2ð €KØ€Oä$¤S¨¯~©~Ó%>×?‰ˆ‰<ˆC�ä×$Ò$ W¸dÑCˆØ×Ñ˜vÔ&ä�eœUŸ[™[×)Ò)ð ×'Ñ'¨Ó.ˆFÙ˜7°3Ñ7ˆEä˜F AÓ&ˆDô ˜& %§*¡*Ó-ˆBØ—;‘;˜u×5Ñ5°gÓ>ÀÀtÀÓMˆDØ—k‘k %×"8Ñ"8¸Ó"CØ#'¨ ,ó0ˆGà—?‘? 5§:¡:¨zÓ:ˆDÜ—H’HœS §¡Ó-Ó.ˆEô   ¨¯	©	Ó2ˆHÜ ¨¯©Ó7ˆHð —,‘,˜|¨b°$¸ÀØ.6¸ð.Bó C‰Cð ×)Ñ)¨%°Ó5ˆCà�‰�c˜6Ô"Ø×Ñ˜3Ôä—o’o g¨sÓ3ˆØ�‰�k =Ô1Ü×#Ò# G¨[¸.×IñK @ôP —.‘.Ð!¤C¨Ó$4Ñ4€Jà×&Ñ&×4Ñ4Ø”u—~‘~ zØó�N€FˆFð ‡M�M�&—/‘/ =Ô1ð 
‡L�L�Ôà‡N�N�>Ô"à×Ñ˜NÔ+ó "ˆØ�‰�W—\‘\ &Ó)Ö*ñ "ð —‘€IØ�g—l‘l =Ó1Ð1Ð1rH   c                   ó    • \ rS rSrS rS rSrg)r  i[  c
           	      óÂ  • Xl         X l        UR                  [        R                  U5      n
UR                  UR                  X:/SS9SS9nX°l        UR                  XJ/SS9nUR                  U5      n[        U[        R                  5      (       Ga  U(       + n[        U5      UR                  :w  a=  [        U5      S:X  a  UR                  S:X  a  O[        SR                  US-   5      5      eUR                  nU Vs/ s H  nU	U   PM
     nn/ n[        U5       HX  nUR                  UUR                  [        R                  UU-   5      /SS9nUR                  U5      nUR                  U5        MZ     U(       a  [         O["        nU" UR$                  UUUUUS	9U l        g U(       a  [        S
R                  XuS-   5      5      e[)        X}S9U l        g s  snf )Nzdata.ptrrm   rq   zcore.step.ptrr   rú   z.type and shape signature mismatch for arg #{0}zstep.ptr©rF  rC  Ú	core_stepÚ	as_scalarr<  r=  z2scalar type {0} given for non scalar argument #{1}©rF  Ústride)r$   r&   rŒ   r   ru   r!   r¶   rq   rv   rA  r:   rC  Ú	TypeErrorÚformatÚrangerŠ   Ú_ArrayAsScalarArgLoaderÚ_ArrayArgLoaderrF  Ú_loaderÚ_ScalarArgLoader)r¾   r$   r&   r   rp   r©   r  rª   r  r  r¿   rq   Úcore_step_ptrrc  rd  rC  r  r<  r=  ÚjÚstepptrr"   Úldclss                          r5   rÄ   ÚGUArrayArg.__init__\  sÎ  € ð ŒØŒà×%Ñ%¤e§j¡j°!Ó4ˆà�|‰|˜GŸK™K¨¨h¸Z˜KÐHØ!'ð ð )ˆàŒ	àŸ™ E¨8¸/˜ÐJˆØ—L‘L Ó/ˆ	ä�cœ5Ÿ;™;×'Ò'Ø œˆIô �4‹y˜CŸH™HÓ$Ü�t“9 “> c§h¡h°!£mð ä#ð %+ß+1©6°!°a±%«=ó:ð :ð —8‘8ˆDÙ)-Ó.ª A�W˜Q”Z©ˆEÐ.ØˆGä˜4–[�Ø!Ÿ+™+ eØ'.×';Ñ';¼E¿J¹JØ<GÈ!¹Oó(Mð 'Nà+5ð &ð 7�ð —|‘| GÓ,�Ø—‘˜tÖ$ñ !ö "õ -ä)ð ñ ! s§y¡yØ&*Ø+4Ø+4Ø',Ø)0ñ2ˆD�Lö Üð !0ß06±°sÀ¹EÓ0BóDð Dä+°#ÑHˆD�Lùò5 /s   ÄGc                 óv   • U R                   R                  U R                  U R                  U R                  US9$ )N)r$   r&   rq   rc   )rl  r!   r$   r&   rq   )r¾   rc   s     r5   r  ÚGUArrayArg.get_array_at_offset—  s3   € Ø�|‰|× Ñ ¨¯©¸t¿|¹|Ø&*§i¡i°Sð !ð :ð 	:rH   )rl  r&   r$   rq   N)rÓ   rÔ   rÕ   rÖ   rÄ   r  r×   rØ   rH   r5   r  r  [  s   † ò9Iõv:rH   r  c                   ó$   • \ rS rSrSrS rS rSrg)rm  iœ  z¶
Handle GFunc argument loading where a scalar type is used in the core
function.
Note: It still has a stride because the input to the gufunc can be an array
      for this argument.
c                 ó   • Xl         X l        g rB   re  )r¾   rF  rf  s      r5   rÄ   Ú_ScalarArgLoader.__init__¤  s   € ØŒ
Ø�rH   c                 óì   • UR                  X2R                  X@R                  5      /5      nUR                  UUR	                  U R
                  5      R                  5       5      nUR                  U5      $ rB   )r¶   Úmulrf  r¸   r·   rF  r¹   r!   )r¾   r$   r&   rq   rc   Údptrs         r5   r!   Ú_ScalarArgLoader.load¨  s[   € à�{‰{˜4§+¡+¨c·;±;Ó"?Ð!@ÓAˆØ�‰˜tØ&×4Ñ4°T·Z±ZÓ@×KÑKÓMóOˆà�|‰|˜DÓ!Ð!rH   re  N)rÓ   rÔ   rÕ   rÖ   Ú__doc__rÄ   r!   r×   rØ   rH   r5   rm  rm  œ  s   † ñòõ"rH   rm  c                   ó*   • \ rS rSrSrS rS rS rSrg)rk  i°  z<
Handle GUFunc argument loading where an array is expected.
c                 óL   • Xl         X l        X0l        X@l        XPl        X`l        g rB   rb  )r¾   rF  rC  rc  rd  r<  r=  s          r5   rÄ   Ú_ArrayArgLoader.__init__µ  s    € ØŒ
ØŒ	Ø"ŒØ"ŒØŒ
Ø�rH   c           
      ó2  • [         R                  " U R                  U R                  SS9nUR	                  U5      nU" X5      n[
        R                  " UUUR                  U R                  U5      5      nU R                  X5      u  pšUR                  UR                  U R                  5      5      nUR                  UUR                  UUR                  R                  5      U	U
UR!                  [         R"                  U5      S S9  UR%                  5       $ )NÚA)rF  rC  Úlayout)rq   r<  r=  rH  Úmeminfo)r   rA  rF  rC  rB  r   rÇ   ry  rc  Ú_shape_and_stridesr»   r·   Úpopulate_arrayr¸   rq   ÚtyperŒ   ru   Ú	_getvalue)r¾   r$   r&   rq   rc   ÚarytyprY  rZ  Úoffseted_datar<  r=  rH  s               r5   r!   Ú_ArrayArgLoader.load½  sò   € Ü—’ 4§:¡:°D·I±IÀcÑJˆØ×#Ñ# FÓ+ˆá�wÓ(ˆÜ×+Ò+¨GØ,0Ø,3¯K©K¸¿¹Ø8;ó-=ó>ˆð
 ×0Ñ0°ÓB‰ˆà×)Ñ)¨'×*?Ñ*?ÀÇ
Á
Ó*KÓLˆØ×Ñ˜uØ$+§O¡O°MØ49·J±J·O±Oó%Eà%*Ø'.Ø(/×(<Ñ(<¼U¿Z¹ZØ=Eó)Gà'+ð 	ñ 	-ð �‰Ó Ð rH   c                 óˆ   • [         R                  " X R                  5      n[         R                  " X R                  5      nX44$ rB   )r   Ú
pack_arrayr<  r=  )r¾   r$   r&   r<  r=  s        r5   r„  Ú"_ArrayArgLoader._shape_and_stridesÕ  s2   € Ü×"Ò" 7¯J©JÓ7ˆÜ×$Ò$ W¯l©lÓ;ˆØˆ~ÐrH   )rd  rc  rF  rC  r<  r=  N)	rÓ   rÔ   rÕ   rÖ   r|  rÄ   r!   r„  r×   rØ   rH   r5   rk  rk  °  s   † ñòò!õ0rH   rk  c                   ó   • \ rS rSrSrS rSrg)rj  iÛ  zŒ
Handle GUFunc argument loading where the shape signature specifies
a scalar "()" but a 1D array is used for the type of the core function.
c                 óä   • UR                  [        R                  S5      nUR                  [        R                  S5      n[        R                  " X#/5      n[        R                  " X$/5      nXV4$ )Nrú   r   )rŒ   r   ru   r   rŒ  )r¾   r$   r&   Úoner«   r<  r=  s          r5   r„  Ú*_ArrayAsScalarArgLoader._shape_and_stridesá  sZ   € à×"Ñ"¤5§:¡:¨qÓ1ˆØ×#Ñ#¤E§J¡J°Ó2ˆÜ×"Ò" 7¨EÓ2ˆÜ×$Ò$ W¨fÓ5ˆØˆ~ÐrH   rØ   N)rÓ   rÔ   rÕ   rÖ   r|  r„  r×   rØ   rH   r5   rj  rj  Û  s   † ñõ
rH   rj  )#Úcollectionsr   ÚnumpyrE  Úllvmlite.irr   r   Úllvmliter   Ú
numba.corer   r   Únumba.core.compiler_lockr	   Únumba.core.cachingr
   r   r   r6   r?   rK   r_   rh   r±   Úobjectr‹   rá   rÛ   r.  r8  r0  r  rm  rk  rj  rØ   rH   r5   Ú<module>rš     sÁ   ðÝ "ã ç +Ý ç %Ý 9ß <ñ ˜?Ò,FÓG€òò8ò@+òDò@+òlIô^&H�ô &HñR % UÓ+€ôx�Vô xôv$˜>ô $ò"ò]2ô@>:�ô >:ôB"�vô "ô((�fô (ôV˜oõ rH   