Ë
    üÇ:j  ã                   óD   — d dl mZ d dlmZ  G d„ d«      Z G d„ d«      Zy)é    )Únumpy_support)Útypesc                   ó   — e Zd ZdZd„ Zd„ Zy)ÚUfuncLowererBasezHCallable class responsible for lowering calls to a specific gufunc.
    c                 óH   — || _         || _         ||«      | _        g | _        y ©N)ÚufuncÚmake_ufunc_kernel_fnÚkernelÚlibs)Úselfr	   Úmake_kernel_fnr
   s       ún/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/numba/np/ufunc/ufunc_base.pyÚ__init__zUfuncLowererBase.__init__   s$   € ØˆŒ
Ø$8ˆÔ!Ù$ UÓ+ˆŒØˆ�	ó    c                 óV   — | j                  ||||| j                  | j                  «      S r   )r
   r	   r   )r   ÚcontextÚbuilderÚsigÚargss        r   Ú__call__zUfuncLowererBase.__call__   s,   € Ø×(Ñ(¨°'¸3ÀØ)-¯©°T·[±[óBð 	Br   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   © r   r   r   r      s   „ ñòóBr   r   c                   óà   — e Zd Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zd„ Zdd„Zd„ Zy)Ú	UfuncBasec                 ó.   — | j                   j                  S r   )r	   Únin©r   s    r   r    zUfuncBase.nin   s   € à�z‰z�~‰~Ðr   c                 ó.   — | j                   j                  S r   )r	   Únoutr!   s    r   r#   zUfuncBase.nout   s   € à�z‰z�‰Ðr   c                 ó.   — | j                   j                  S r   )r	   Únargsr!   s    r   r%   zUfuncBase.nargs   ó   € à�z‰z×ÑÐr   c                 ó.   — | j                   j                  S r   )r	   Úntypesr!   s    r   r(   zUfuncBase.ntypes!   ó   € à�z‰z× Ñ Ð r   c                 ó.   — | j                   j                  S r   )r	   r   r!   s    r   r   zUfuncBase.types%   r&   r   c                 ó.   — | j                   j                  S r   )r	   Úidentityr!   s    r   r,   zUfuncBase.identity)   ó   € à�z‰z×"Ñ"Ð"r   c                 ó.   — | j                   j                  S r   )r	   Ú	signaturer!   s    r   r/   zUfuncBase.signature-   s   € à�z‰z×#Ñ#Ð#r   c                 ó.   — | j                   j                  S r   )r	   Ú
accumulater!   s    r   r1   zUfuncBase.accumulate1   s   € à�z‰z×$Ñ$Ð$r   c                 ó.   — | j                   j                  S r   )r	   Úatr!   s    r   r3   zUfuncBase.at5   s   € à�z‰z�}‰}Ðr   c                 ó.   — | j                   j                  S r   )r	   Úouterr!   s    r   r5   zUfuncBase.outer9   r&   r   c                 ó.   — | j                   j                  S r   )r	   Úreducer!   s    r   r7   zUfuncBase.reduce=   r)   r   c                 ó.   — | j                   j                  S r   )r	   Úreduceatr!   s    r   r9   zUfuncBase.reduceatA   r-   r   c                 óZ   — t        | j                  j                  «      dkD  sJ ‚d| _        y)zI
        Disable the compilation of new signatures at call time.
        r   TN)ÚlenÚ_dispatcherÚ	overloadsÚ_frozenr!   s    r   Údisable_compilezUfuncBase.disable_compileE   s*   € ô
 �4×#Ñ#×-Ñ-Ó.°Ò2Ð2Ð2Øˆ�r   Nc                 óŒ  — |€ | j                   j                  j                  }t        j                  }t        j
                  }|f| j                  j                  z  |f| j                  j                  z  z   }|f| j                  j                  z  }|j                  ||fD �cg c]  }| j                  | |f‘Œ c}«       yc c}w )a4  
        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)r<   ÚtargetdescrÚtarget_contextr   ÚAnyÚArrayr	   r    r#   Úinsert_func_defnÚ	_lower_me)r   Ú	targetctxÚ_anyÚ_arrÚsig0Úsig1r   s          r   Ú_install_cgzUfuncBase._install_cgM   sž   € ð ÐØ×(Ñ(×4Ñ4×CÑCˆIÜ�y‰yˆÜ�{‰{ˆàˆw˜Ÿ™Ÿ™Ñ'¨4¨'°D·J±J·O±OÑ*CÑCˆØˆw˜Ÿ™Ÿ™Ñ'ˆØ×"Ñ"Ø59¸4°LÖA¨Sˆd�n‰n˜d CÒ(ÒAõ	CùÚAs   Â#Cc                 ó2  — | j                   rGt        j                  | |«      }|€yt        |j                  |j
                  z   «      dt        |«       }| j                  j                  j                  «       D ]  \  }}| j                  ||«      sŒ||fc S  y)a  
        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)r>   r   Úufunc_find_matching_loopÚtupleÚinputsÚoutputsr;   r<   r=   ÚitemsÚmatch_signature)r   Úewise_typesÚloopr   Úcress        r   Úfind_ewise_functionz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Ø˜D�yÒ ð	!ð r   r   )r   r   r   Úpropertyr    r#   r%   r(   r   r,   r/   r1   r3   r5   r7   r9   r?   rL   rW   r   r   r   r   r      s   „ àñó ðð ñó ðð ñ ó ð ð ñ!ó ð!ð ñ ó ð ð ñ#ó ð#ð ñ$ó ð$ð ñ%ó ð%ð ñó ðð ñ ó ð ð ñ!ó ð!ð ñ#ó ð#òóCó$r   r   N)Únumba.npr   Ú
numba.corer   r   r   r   r   r   ú<module>r[      s#   ðÝ "Ý ÷Bñ B÷^ò ^r   