§
    ƒÛgT!  ã                   ó2  — d Z ddlZddlZddlZddlZd„ Z e¦   «          ddlmZ ddlm	Z	  e¦   «         d         Z
 e	e
¦  «        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mZmZmZ ddlT ddlmc mZ ddlT ddlmZmZmZm Z m!Z!m"Z" ddl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/ ddl0m1Z1 ddl2Z0ddl2m3Z4 ddl2m5Z5 ddl6Z0ddl7Z0d„ Z8d 9                    ¦   «         ej:        z   ej:        z   Z:dZ;dZ<d„ Z=d„ Z> e=¦   «          ddl?Z?	  e>¦   «         e_@        dS )z5
Expose top-level symbols that are safe for import *
é    Nc                  ó¦  — d„ } t           j        dd…         }|dk     r$d|d         › d|d         › d�}t          |¦  «        ‚ddl} | |¦  «        }|d	k     r$d
|d         › d|d         › d�}t          |¦  «        ‚|dk    rt          d¦  «        ‚	 ddl} | |¦  «        }|dk     rd|j        › d�}t          |¦  «        ‚dS # t          $ r Y dS w xY w)aÇ  
    Make sure the Python, NumPy and SciPy present are supported versions.
    This has to be done _before_ importing anything from Numba such that
    incompatible versions can be reported to the user. If this occurs _after_
    importing things from Numba and there's an issue in e.g. a Numba c-ext, a
    SystemError might have occurred which prevents reporting the likely cause of
    the problem (incompatible versions of critical dependencies).
    c                 ó†   — t          t          t          | j                             d¦  «        d d…         ¦  «        ¦  «        S )Nú.é   )ÚtupleÚmapÚintÚ__version__Úsplit)Úmods    úD/granary/edev/quantum/lib/python3.11/site-packages/numba/__init__.pyÚextract_versionz._ensure_critical_deps.<locals>.extract_version   s3   € Ý•S�˜cœo×3Ò3°CÑ8Ô8¸¸!¸Ô<Ñ=Ô=Ñ>Ô>Ð>ó    Nr   )é   é   z.Numba needs Python 3.8 or greater. Got Python r   r   é   )r   é   z-Numba needs NumPy 1.22 or greater. Got NumPy )r   é   zNumba needs NumPy 1.26 or less)r   r   z7Numba requires SciPy version 1.0 or greater. Got SciPy )ÚsysÚversion_infoÚImportErrorÚnumpyÚscipyr
   )r   Ú	PYVERSIONÚmsgÚnpÚnumpy_versionr   Ú
sp_versions          r   Ú_ensure_critical_depsr      si  € ð?ð ?ð ?õ Ô   ! Ô$€Ià�6ÒÐð1Ø˜A”,ð1ð 1Ø!*¨1¤ð1ð 1ð 1ˆå˜#ÑÔÐàÐÐÐØ#�O BÑ'Ô'€Mà�wÒÐð9Ø Ô"ð9ð 9Ø%2°1Ô%5ð9ð 9ð 9ˆå˜#ÑÔÐØ	˜Ò	 Ð	 ÝÐ:Ñ;Ô;Ð;ð	#Øˆˆˆð %�_ UÑ+Ô+ˆ
Ø˜ÒÐð+ØÔ'ð+ð +ð +ˆCå˜cÑ"Ô"Ð"ð Ðøõ	 ð ð ð Øˆˆðøøøs   ÂC Ã
CÃCr   )Úget_versions)Úgenerate_version_infoÚversion)Úconfig)ÚtypesÚerrors)ÚtypeofÚprangeÚpndindexÚgdbÚgdb_breakpointÚgdb_initÚ	literallyÚliteral_unroll)Ú*)ÚcfuncÚgenerated_jitÚjitÚnjitÚstencilÚ
jit_module)Ú	vectorizeÚguvectorizeÚthreading_layerÚget_num_threadsÚset_num_threadsÚset_parallel_chunksizeÚget_parallel_chunksizeÚget_thread_id)ÚcarrayÚfarrayÚ
from_dtype)Úexperimental)Úobjmode_context)Úparallel_chunksizec                 ó*   — ddl m}  |j        | fi |¤ŽS )Nr   )Ú	_runtests)Únumba.testingrD   Úmain)ÚargvÚkwdsÚruntestss      r   ÚtestrJ   s   s0   € ð 4Ð3Ð3Ð3Ð3Ð3Øˆ8Œ=˜Ð&Ð& Ð&Ð&Ð&r   aK  
    cfunc
    from_dtype
    guvectorize
    jit
    experimental
    njit
    stencil
    jit_module
    typeof
    prange
    gdb
    gdb_breakpoint
    gdb_init
    vectorize
    objmode
    literal_unroll
    get_num_threads
    set_num_threads
    set_parallel_chunksize
    get_parallel_chunksize
    parallel_chunksize
    )r   é)   r   )é   r   r   c                  óÌ  — ddl } ddl}t          j        d¦  «        }|                     |j        ¦  «        }|rbt          t          t          | 	                    ¦   «         ¦  «        ¦  «        }|t          k     r"dt          |j        fz   z  }t          |¦  «        ‚n | j        d¦  «         ddlm}m} |t           k     rdt           |z   z  }t          |¦  «        ‚ |¦   «          dS )z,
    Make sure llvmlite is operational.
    r   Nz(\d+)\.(\d+).(\d+)zfNumba requires at least version %d.%d.%d of llvmlite.
Installed version is %s.
Please update llvmlite.z'llvmlite version format not recognized!)Úllvm_version_infoÚcheck_jit_executionzNumba requires at least version %d.%d.%d of LLVM.
Installed llvmlite is built against version %d.%d.%d.
Please update llvmlite.)ÚwarningsÚllvmliteÚreÚcompileÚmatchr
   r   r   r	   ÚgroupsÚ_min_llvmlite_versionr   ÚwarnÚllvmlite.bindingrN   rO   Ú_min_llvm_version)rP   rQ   ÚregexÚmÚverr   rN   rO   s           r   Ú_ensure_llvmr]   •   s  € ð €O€O€OØ€O€O€Oõ ŒJÐ,Ñ-Ô-€EØ�Š�HÔ(Ñ)Ô)€AØð 
AÝ•C�˜QŸXšX™ZœZÑ(Ô(Ñ)Ô)ˆØÕ&Ò&Ð&ð-õ *¨XÔ-AÐ,CÑCñEˆCõ ˜cÑ"Ô"Ð"ð 'ð 	ˆŒÐ?Ñ@Ô@Ð@àGÐGÐGÐGÐGÐGÐGÐGàÕ,Ò,Ð,ð)õ "Ð$5Ñ5ñ7ˆõ ˜#ÑÔÐàÐÑÔÐÐÐr   c                  óJ  — t           j        �s•	 t          j                             d¦  «        r t
          j                             d¦  «         n€t          j                             d¦  «        r t
          j                             d¦  «         nAt          j                             d¦  «        r t
          j                             d¦  «         ndS 	  t          t
          j        j	        d¦  «        ¦   «         sdS nJ# t          $ r= t          j        ¦   «         d	k    r"t           j        rd
} t          j        | ¦  «         Y dS w xY wt
          j                             dd¦  «         dS #  t          j        ¦   «         d	k    r t           j        rt          j        d¦  «         Y nxY wdS )zU
    Tries to enable SVML if configuration permits use and the library is found.
    Úlinuxz
libsvml.soÚdarwinzlibsvml.dylibÚwinÚsvml_dispmdFÚhas_svmlÚx86_64z>SVML was found but llvmlite >= 0.23.2 is needed to support it.ÚSVMLz-vector-library=SVMLTz'SVML was not found/could not be loaded.)r#   ÚDISABLE_INTEL_SVMLr   ÚplatformÚ
startswithrQ   ÚbindingÚload_library_permanentlyÚgetattrÚtargetsÚAttributeErrorÚmachineÚDEBUGrP   rW   Ú
set_option)r   s    r   Ú_try_enable_svmlrq   ¸   s˜  € õ Ô$ñ (Ið'	IÝŒ|×&Ò& wÑ/Ô/ð ÝÔ ×9Ò9¸,ÑGÔGÐGÐGÝ”×(Ò(¨Ñ2Ô2ð ÝÔ ×9Ò9¸/ÑJÔJÐJÐJÝ”×(Ò(¨Ñ/Ô/ð ÝÔ ×9Ò9¸-ÑHÔHÐHÐHà�uðØD•w�xÔ/Ô7¸ÑDÔDÑFÔFð !ð !˜5ð!øõ "ð ð ð ÝÔ#Ñ%Ô%¨Ò1Ð1µf´lÐ1ð3�Cå”M #Ñ&Ô&Ð&ð �u�uðøøøõ Ô×'Ò'¨Ð0FÑGÔGÐGØ�4øð	IÝÔÑ!Ô! XÒ-Ð-µ&´,Ð-Ý”ÐGÑHÔHÐHøøøøøØˆ5s1   �B=E% Ã'C9 Ã8E% Ã9AE Ä<E% Ä?E Å #E% Å%9F )AÚ__doc__rg   rR   r   rP   r   Ú_versionr    Únumba.misc.init_utilsr!   r
   r   Ú
numba.corer#   r$   r%   Únumba.misc.specialr&   r'   r(   r)   r*   r+   r,   r-   Únumba.core.errorsÚnumba.core.typesÚcoreÚnumba.core.decoratorsr/   r0   r1   r2   r3   r4   Únumba.np.ufuncr5   r6   r7   r8   r9   r:   r;   r<   Únumba.np.numpy_supportr=   r>   r?   Únumbar@   Únumba.core.withcontextsrA   ÚobjmoderB   Únumba.core.target_extensionÚnumba.typedrJ   r   Ú__all__rV   rY   r]   rq   rQ   Ú
USING_SVML© r   r   ú<module>r…      s;  ððð ð €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€ð
'#ð '#ð '#ðT Ð Ñ Ô Ð ð
 #Ð "Ð "Ð "Ð "Ð "Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7àˆl‰nŒn˜YÔ'€Ø$Ð$ [Ñ1Ô1€ØØð Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  Ð Ð Ð ð !Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  ð Ð Ð Ð ð/ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð+ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð >Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ð Ð Ð Ð Ð Ð ð Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6ð #Ð "Ð "Ð "ð Ð Ð Ð ð'ð 'ð 'ð÷, 	Š‰Œ�%”-ñ- ð, #)¤.ñ-1€ð2 #Ð ØÐ ð ð  ð  ðF-ð -ð -ð^ €�„€ð €€€ðð %Ð$Ñ&Ô&€Ô Ð Ð r   