
    J/Ph                     6   d Z ddlmZ  G d dej                  Zd Zi dddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-Zd.                                Z e	e
                                           e	e          z  Zd/S )0z9
LLVM pass that converts intrinsic into other math calls
    )irc                       e Zd Zd ZdS )_DivmodFixerc                    |j         t          j        d          k    r|j        dv rd                    |j                  }| j        j                            |          }|:|j         }t          j        |||g          }t          j	        | j        ||          }t          j
        |j        ||j        |j                  }|j                            ||           d S d S d S )N@   )sremuremsdivudivz
numba_{op})op)name)parentfuncargsr   )typer   IntTypeopnameformatmoduleglobalsgetFunctionTypeFunction	CallInstrr   operandsr   replace)selfinstrr   fnoptysdivfntyrepls          U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/core/intrinsics.pyvisit_Instructionz_DivmodFixer.visit_Instruction	   s    :B''|???#**el*;;[(,,T22: :D!tdD\BBHT[(FFFB|5<b).ejJ J J$$UD11111 ('??    N)__name__
__module____qualname__r$    r%   r#   r   r      s#        2 2 2 2 2r%   r   c                 H    t                                          |            dS )zAReplace division and reminder instructions to builtins calls
    N)r   visit)mods    r#   
fix_divmodr-      s"     NNr%   zllvm.pow.f32powfzllvm.pow.f64powzllvm.sin.f32sinfzllvm.sin.f64sinzllvm.cos.f32cosfzllvm.cos.f64coszllvm.sqrt.f32sqrtfzllvm.sqrt.f64sqrtzllvm.exp.f32expfzllvm.exp.f64expzllvm.log.f32logfzllvm.log.f64logzllvm.log10.f32log10fzllvm.log10.f64log10zllvm.fabs.f32fabsfzllvm.fabs.f64fabszllvm.floor.f32floorffloorceilfceiltruncftrunc)zllvm.floor.f64zllvm.ceil.f32zllvm.ceil.f64zllvm.trunc.f32zllvm.trunc.f64z
tan
tanf
sinh
sinhf
cosh
coshf
tanh
tanhf
asin
asinf
acos
acosf
atan
atanf
atan2
atan2f
asinh
asinhf
acosh
acoshf
atanh
atanhf
expm1
expm1f
log1p
log1pf
log10
log10f
fmod
fmodf
round
roundf
N)__doc__llvmliter   Visitorr   r-   INTR_TO_CMATHsplitOTHER_CMATHS	frozensetvalues	INTR_MATHr)   r%   r#   <module>rM      s         2 2 2 2 22: 2 2 2"  !F!E! F	!
 E! F! E! W! V! F! E!  F!!" E#!& h'!( g)!, W-!. V/!2 h3!4 A! ! !F!B 
EGGC F Im**,,--		,0G0GG			r%   