+
    :i                         R t ^ RIt^ RIHt ^ RIHt ^ RIHtH	t	 ^ RI
Ht R tR tR t ! R R	]4      t ! R
 R]4      t]! 4       tR# )zD
Register external C functions necessary for Numba code generation.
N)ir)utils
intrinsics)
_helperlibc                n    \         P                  ! V 4      '       g   \         P                  ! W4       R# R# )z1Add missing symbol into LLVM internal symtab
    N)lladdress_of_symbol
add_symbol)symboladdrs   &&R/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/core/externals.py_add_missing_symbolr      s&     ''
f# (    c                f    ^ RI HpHpHp \	        VP
                  V 4      pV! WC4      P                  # )zf
Under Windows, look up a symbol inside the C runtime
and return the raw pointer value as an integer.
)cdllcastc_void_p)ctypesr   r   r   getattrmsvcrtvalue)r
   r   r   r   fs   &    r   _get_msvcrt_symbolr      s+    
 ,+V$A"""r   c           
        V P                  4       pVP                  R4      pVP                  R4      p\        P                  ! ^@4      p\        P                  ! ^4      p\        P
                  ! VR4      p\        P
                  ! V^ 4      p\        P
                  ! V^@4      p\        P                  ! WUV.4      p	\        P                  ! W9RR7      p
V
P                  w  rV
P                  4       p\        P                  ! V4      pVP                  W4      pVP                  W4      pVP                  VP                  W4      V4      pVP                  VP                  W4      V4      pVP                  VP                  W4      VP                  VV4      4      pVP                  VV4      pVP                  VV4      pVP!                  VVP                  VP                  W4      VP                  VV4      4      4      pVP!                  VVP#                  VV4      4      pVP                  VV4      pVP                  VV4      pVP                  VV4      pVP!                  VVP                  VP                  VV4      VP                  W4      4      4      pVP!                  VVP#                  VV4      4      pVP!                  VVP                  VV4      4      pVP!                  VVP                  VP                  W4      VP                  VV4      4      4      pVP!                  VVP                  VV4      4      pVP!                  VVP                  VV4      4      pVP%                  VV4      pVP!                  VVP#                  VP%                  VV4      V4      4      pVP'                  V4       VP)                  V4       VP+                  4        V# )zc
Compile the multi3() helper function used by LLVM
for 128-bit multiplication on 32-bit platforms.
multi3l    )name)codegencreate_librarycreate_ir_moduler   IntTypeConstantFunctionTypeFunctionargsappend_basic_block	IRBuildertruncashrmuland_lshraddshlzextretadd_ir_modulefinalize)contextr   libraryir_modi64i128
lower_mask_32_64fn_typefnabbbbuilderalblahbhrltrhrs   &                      r   compile_multi3rG      s   
 ooG$$X.G%%h/F
**R.C::c?DS*-J
++c2
C
++dB
Cood4L1G	V8	4B77DA				 Bll2G 
q	B	q	B	w||A+S	1B	w||A+S	1B 
W\\"17<<J3O	PBRA	b*	%BAw{{7<<#8#*<<J#?A 	BA 
RQ,	-B	a	BRA	b*	%BAw{{7<<C#8#*<<#?A 	BA 
RQ,	-B	Ra-	.B	RW\\"%:%,\\"c%:< 
=B 
RR,	-B	RR,	-B 	RAAw{{7<<D#93?@AKKN&!Nr   c                   *   a  ] tR t^ht o RtR tRtV tR# )
_InstallerFc                ^    V P                   '       g   V P                  V4       RV n         R# R# )z
Install the functions into LLVM.  This only needs to be done once,
as the mappings are persistent during the process lifetime.
TN)
_installed_do_install)selfr1   s   &&r   install_Installer.installl   s'    
 W%"DO r   )rK   N)__name__
__module____qualname____firstlineno__rK   rN   __static_attributes____classdictcell____classdict__s   @r   rI   rI   h   s     J# #r   rI   c                   *   a  ] tR t^vt o RtR tRtV tR# )_ExternalMathFunctionszX
Map the math functions from the C runtime library into the LLVM
execution environment.
c                v   \         P                  ^ 8H  p\        P                  p\        P
                  P                  R4      '       d!   V'       d   \        R4      p\        RV4       MS\        P
                  P                  R4      '       d/   V'       d'   \        RVR,          4       \        RVR,          4       V'       dB   \        V4      V n
        V P                  P                  R	4      pV'       g   Q h\        R
V4       \        P                   F   p\        P                  ! WcV,          4       K"  	  R# )    win32_ftol_ftol2linux__fixunsdfdifptoui__fixunssfdifptouifr   __multi3N)r   MACHINE_BITSr   	c_helperssysplatform
startswithr   r   rG   _multi3_libget_pointer_to_functionr   	INTR_MATHr   r	   )rM   r1   is32bitrf   ftolptrfnames   &&     r   rL   "_ExternalMathFunctions._do_install|   s    $$*((	<<""7++ &g.D$/\\$$W--'	(0CD	)0DE-g6D""::8DCJ3
C0  ))E
 MM%5!12 *r   )rj   N)rP   rQ   rR   rS   __doc__rL   rT   rU   rV   s   @r   rY   rY   v   s     
3 3r   rY   )rr   rg   llvmliter   llvmlite.bindingbindingr   
numba.corer   r   numbar   r   r   rG   objectrI   rY   c_math_functions r   r   <module>r{      sP       ( $#FR# #"3Z "3J *+ r   