ó
    ýZh  ã                   óD   • S SK Jr  S SKJr   " S S5      r " S S5      rg)é    )Únumpy_support)Útypesc                   ó$   • \ rS rSrSrS rS rSrg)ÚUfuncLowererBaseé   zHCallable class responsible for lowering calls to a specific gufunc.
    c                 óD   • Xl         X0l        U" U5      U l        / U l        g ©N)ÚufuncÚmake_ufunc_kernel_fnÚkernelÚlibs)Úselfr
   Úmake_kernel_fnr   s       Úh/home/gothic/public_html/Fooocus/fooocus_env/lib64/python3.13/site-packages/numba/np/ufunc/ufunc_base.pyÚ__init__ÚUfuncLowererBase.__init__   s    € ØŒ
Ø$8Ô!Ù$ UÓ+ˆŒØˆ�	ó    c                 óR   • U R                  XX4U R                  U R                  5      $ r	   )r   r
   r   )r   ÚcontextÚbuilderÚsigÚargss        r   Ú__call__ÚUfuncLowererBase.__call__   s(   € Ø×(Ñ(¨¸3Ø)-¯©°T·[±[óBð 	Br   )r   r   r   r
   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Ú__static_attributes__© r   r   r   r      s   † ñòõBr   r   c                   óê   • \ rS rS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SS jrS rSrg)Ú	UfuncBaseé   c                 ó.   • U R                   R                  $ r	   )r
   Únin©r   s    r   r&   ÚUfuncBase.nin   s   € à�z‰z�~‰~Ðr   c                 ó.   • U R                   R                  $ r	   )r
   Únoutr'   s    r   r*   ÚUfuncBase.nout   s   € à�z‰z�‰Ðr   c                 ó.   • U R                   R                  $ r	   )r
   Únargsr'   s    r   r-   ÚUfuncBase.nargs   ó   € à�z‰z×ÑÐr   c                 ó.   • U R                   R                  $ r	   )r
   Úntypesr'   s    r   r1   ÚUfuncBase.ntypes!   ó   € à�z‰z× Ñ Ð r   c                 ó.   • U R                   R                  $ r	   )r
   r   r'   s    r   r   ÚUfuncBase.types%   r/   r   c                 ó.   • U R                   R                  $ r	   )r
   Úidentityr'   s    r   r7   ÚUfuncBase.identity)   ó   € à�z‰z×"Ñ"Ð"r   c                 ó.   • U R                   R                  $ r	   )r
   Ú	signaturer'   s    r   r;   ÚUfuncBase.signature-   s   € à�z‰z×#Ñ#Ð#r   c                 ó.   • U R                   R                  $ r	   )r
   Ú
accumulater'   s    r   r>   ÚUfuncBase.accumulate1   s   € à�z‰z×$Ñ$Ð$r   c                 ó.   • U R                   R                  $ r	   )r
   Úatr'   s    r   rA   ÚUfuncBase.at5   s   € à�z‰z�}‰}Ðr   c                 ó.   • U R                   R                  $ r	   )r
   Úouterr'   s    r   rD   ÚUfuncBase.outer9   r/   r   c                 ó.   • U R                   R                  $ r	   )r
   Úreducer'   s    r   rG   ÚUfuncBase.reduce=   r3   r   c                 ó.   • U R                   R                  $ r	   )r
   Úreduceatr'   s    r   rJ   ÚUfuncBase.reduceatA   r9   r   c                 ó\   • [        U R                  R                  5      S:”  d   eSU l        g)z9
Disable the compilation of new signatures at call time.
r   TN)ÚlenÚ_dispatcherÚ	overloadsÚ_frozenr'   s    r   Údisable_compileÚUfuncBase.disable_compileE   s*   € ô
 �4×#Ñ#×-Ñ-Ó.°Ó2Ð2Ð2Øˆ�r   Nc                 óŽ  • Uc   U R                   R                  R                  n[        R                  n[        R
                  nU4U R                  R                  -  U4U R                  R                  -  -   nU4U R                  R                  -  nUR                  XE4 Vs/ s H  o`R                  X4PM     sn5        gs  snf )a  
Install an implementation function for a GUFunc/DUFunc object in the
given target context.  If no target context is given, then
_install_cg() installs into the target context of the
dispatcher object (should be same default context used by
jit() and njit()).
N)rN   ÚtargetdescrÚtarget_contextr   ÚAnyÚArrayr
   r&   r*   Úinsert_func_defnÚ	_lower_me)r   Ú	targetctxÚ_anyÚ_arrÚsig0Úsig1r   s          r   Ú_install_cgÚUfuncBase._install_cgM   sœ   € ð ÑØ×(Ñ(×4Ñ4×CÑCˆIÜ�y‰yˆÜ�{‰{ˆàˆw˜Ÿ™Ÿ™Ñ'¨4¨'°D·J±J·O±OÑ*CÑCˆØˆw˜Ÿ™Ÿ™Ñ'ˆØ×"Ñ"Ø59±LÓA²L¨S�n‰n˜dÓ(±LÑAõ	CùÚAs   Â#Cc                 óF  • U R                   (       aH  [        R                  " X5      nUc  g[        UR                  UR
                  -   5      S[        U5       nU R                  R                  R                  5        H   u  p4U R                  X5      (       d  M  X44s  $    g)zå
Given a tuple of element-wise argument types, find a matching
signature in the dispatcher.

Return a 2-tuple containing the matching signature, and
compilation result.  Will return two None's if no matching
signature was found.
N)NN)rP   r   Úufunc_find_matching_loopÚtupleÚinputsÚoutputsrM   rN   rO   ÚitemsÚmatch_signature)r   Úewise_typesÚloopr   Úcress        r   Úfind_ewise_functionÚUfuncBase.find_ewise_function_   s†   € ð �<�<ä ×9Ò9¸$ÓLˆDØ‰|Ø!Ü §¡¨d¯l©lÑ :Ó;Ð<M¼SÀÓ=MÐNˆKØ×)Ñ)×3Ñ3×9Ñ9Ö;‰IˆCØ×#Ñ# K×5Ó5Ø�yÒ ñ <ð r   )rP   r	   )r   r   r   r   Úpropertyr&   r*   r-   r1   r   r7   r;   r>   rA   rD   rG   rJ   rQ   r_   rk   r    r!   r   r   r#   r#      s   † àñó ðð ñó ðð ñ ó ð ð ñ!ó ð!ð ñ ó ð ð ñ#ó ð#ð ñ$ó ð$ð ñ%ó ð%ð ñó ðð ñ ó ð ð ñ!ó ð!ð ñ#ó ð#òôCõ$r   r#   N)Únumba.npr   Ú
numba.corer   r   r#   r!   r   r   Ú<module>rp      s#   ðÝ "Ý ÷Bñ B÷^ò ^r   