
    xKgD                        d Z ddlZddlZddlmZmZ ddlmZmZ ddl	m
Z
 ddlmZmZ ddlmZ  ed      Zej"                  Zd	 Zd
 Zd Z eej*                  ej,                        d        Z eej0                  ej,                        d        Z eej4                  ej,                        d        Z eej8                        d        Zd Z ed      Z  ed      Z! eejD                  ej,                        ed               Z# eejH                  ej,                        ed               Z% eejH                  ej,                  ej,                        d        Z& eejN                        d        Z( eejR                        d        Z* eejV                        d        Z, eejZ                  ej,                        d        Z. eej^                  ej,                        d        Z0 eejb                        d        Z2 eejf                  ej,                        d        Z4 eejj                        d        Z6 eejn                  ej,                        d        Z8 eejr                        d        Z: eejv                  ej,                        d         Z< eejz                        d!        Z> eej~                  ej,                        d"        Z@ eej                  ej,                        d#        ZB eej                  ej,                        d$        ZD eej                  ej,                        d%        ZFy)&z'
Implement the cmath module functions.
    N)Registryimpl_ret_untracked)typescgutils)	signature)builtinsmathimpl)overload	cmathimplc                 P    | j                  d|j                  |j                        S )Nuno)fcmp_unorderedrealimagbuilderzs     [/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cpython/cmathimpl.pyis_nanr      s    !!%88    c                     | j                  t        j                  | |j                        t        j                  | |j                              S N)or_r	   is_infr   r   r   s     r   r   r      s6    ;;xw7w79 9r   c                     | j                  t        j                  | |j                        t        j                  | |j                              S r   )and_r	   	is_finiter   r   r   s     r   r   r      s:    <<**7AFF; **7AFF;= =r   c                     |j                   \  }|\  }| j                  |||      }t        ||      }t        | ||j                  |      S Nvalue)argsmake_complexr   r   return_typecontextr   sigr"   typr!   r   ress           r   isnan_float_implr*      L    HHESGUWc7A
!
CgwEEr   c                     |j                   \  }|\  }| j                  |||      }t        ||      }t        | ||j                  |      S r   )r"   r#   r   r   r$   r%   s           r   isinf_float_implr-   '   r+   r   c                     |j                   \  }|\  }| j                  |||      }t        ||      }t        | ||j                  |      S r   )r"   r#   r   r   r$   r%   s           r   isfinite_float_implr/   0   sL    HHESGUWc7A
GQ
CgwEEr   c           	      ~    t        | |fD cg c]  }t        |t        j                         c}      rd }|S y c c}w )Nc                    t        j                  |      s.| st        |       S t        j                  |       rt	        | |      S t        j
                  |      }t        j                  |      }|dk(  rt        j                  |       r|| z  }n|| z  }|dk(  rt        j                  |       r|| z  }n|| z  }t	        ||      S )N        )mathisfiniteabsisinfcomplexcossin)rphir   r   s       r   implzimpl_cmath_rect.<locals>.impl<   s    ==%q6M::a="1c?*88C=D88C=Drzdjjm		rzdjjm		4&&r   )all
isinstancer   Float)r:   r;   r(   r<   s       r   impl_cmath_rectr@   9   s<    
QH=HSJsEKK(H=>	'* - ?=s   !:c                       fd}|S )Nc           	         |j                   \  }|\  }| j                  |||      }|j                  }|j                  }t	        j
                  ||      }	t	        j
                  ||      }
t        |j                  g|j                  fdz  t        j                  fdz  z    }| j                  |||||	|
f      }t        | |||      S )Nr       )r"   r#   r   r   r	   r   r   r$   underlying_floatr   booleancompile_internalr   )r&   r   r'   r"   r(   r!   r   xyx_is_finitey_is_finite	inner_sigr)   
inner_funcs                r   wrapperz(intrinsic_complex_unary.<locals>.wrapperU   s      #U ;FFFF ((!4((!4coo S # 4 46:emm=MPQ=QQS	&&w
I)*A{K(HJ!'7C==r    )rL   rM   s   ` r   intrinsic_complex_unaryrO   T   s    > Nr   naninfc                    |rg|rQt        j                  |      }t        j                  |      }t        j                  |       }t	        ||z  ||z        S t	        t
        t
              S t        j                  |       r|rt	        | |       S t	        | |      S | dkD  r\|rJt        j                  |      }t        j                  |      }|dk7  r|| z  }|dk7  r|| z  }t	        ||      S t	        | t
              S |rQt        j                  |       }t        j                  |      }t        j                  |      }t	        ||z  ||z        S d}t	        ||      S )zcmath.exp(x + y j)r2   r   )r3   r8   r9   expr7   NANisnan)	rG   rH   rI   rJ   csr:   r   r   s	            r   exp_implrX   j   s*    AAA1q5!a%((3$$	A1a= 1a= 	
S88A;D88A;D qy	qy	4&&1c?" AAA1q5!a%((A1a= r   c                     t        j                  t        j                  | |            }t        j                  ||       }t	        ||      S )zcmath.log(x + y j))r3   loghypotatan2r7   )rG   rH   rI   rJ   abs         r   log_implr_      s9     	Aq!"A

1aA1a=r   c                 V    |\  }}d }| j                  ||||      }t        | |||      S )zcmath.log(z, base)c                 X    t        j                  |       t        j                  |      z  S r   )cmathrZ   )r   bases     r   log_basezlog_base_impl.<locals>.log_base   s    yy|eiio--r   rF   r   )r&   r   r'   r"   r   rc   rd   r)   s           r   log_base_implrf      s;     IQ. 
"
"7Hc4
@CgwS99r   c                 L    t        | t        j                        sy dfd}|S )NgUk@c                 z    t        j                  |       } t        | j                  z  | j                  z        S )zcmath.log10(z))rb   rZ   r7   r   r   )r   LN_10s    r   
log10_implz$impl_cmath_log10.<locals>.log10_impl   s/    IIaL qvv~qvv~66r   r>   r   Complex)r   rj   ri   s     @r   impl_cmath_log10rm      s&    a' E7 r   c                 B    t        | t        j                        syd }|S )zcmath.phase(x + y j)Nc                 V    t        j                  | j                  | j                        S r   )r3   r\   r   r   )rG   s    r   r<   zphase_impl.<locals>.impl   s    zz!&&!&&))r   rk   rG   r<   s     r   
phase_implrq      s     a'*Kr   c                 B    t        | t        j                        sy d }|S )Nc                     | j                   | j                  }}t        j                  ||      t        j                  ||      fS r   )r   r   r3   r[   r\   )rG   r:   is      r   r<   zpolar_impl.<locals>.impl   s4    vvqvv1zz!QAq!111r   rk   rp   s     r   
polar_implru      s    a'2 Kr   c                    
 d}d|z   }|j                   d   j                  }|j                  dk(  rt        j                  nt        j
                  }||z  

fd}| j                  ||||      }	t        | |||	      S )Ng;f?      ?r   @   c                    | j                   }| j                  }|dk(  r|dk(  rt        t        |      |      S t	        j
                  |      rt        t        |      |      S t	        j                  |      rt        ||      S t	        j
                  |      rT|dk  r,t        t        ||z
        t	        j                  ||            S t        |t	        j                  ||z
  |            S t        |      k\  st        |      k\  r|dz  }|dz  }d}nd}|dk\  r:t	        j                  |t	        j                  ||      z   dz        }|}|d|z  z  }nWt	        j                  | t	        j                  ||      z   dz        }t        |      d|z  z  }t	        j                  ||      }|rt        |dz  |      S t        ||      S )zcmath.sqrt(z)r2         ?TFr         ?rC   )
r   r   r7   r5   r3   r6   rU   copysignsqrtr[   )r   r]   r^   scaletr   r   THRESs          r   	sqrt_implzsqrt_impl.<locals>.sqrt_impl   s    FFFF8S3q61%%::a=3q61%%::a=1a= ::a=3ws1q5z4==A+>??q$--Aq"9:: q6U?c!foIAIAEE6		1tzz!Q//367ADA;D		A2

1a 00C78Aq6QU#D==A&D4!8T**4&&r   )r"   rD   bitwidthr	   DBL_MAXFLT_MAXrF   r   )r&   r   r'   r"   SQRT2ONE_PLUS_SQRT2	theargfltMAXr   r)   r   s             @r   r   r      s     5E5jN,,I'00B6(

H<L<LC
 . E('T 
"
"7IsD
ACgwS99r   c                 L    d }| j                  ||||      }t        | |||      S )Nc                 j    t        j                  t        | j                   | j                              S )zcmath.cos(z) = cmath.cosh(z j))rb   coshr7   r   r   )r   s    r   cos_implzcos_impl.<locals>.cos_impl  s"    zz'166'166233r   re   )r&   r   r'   r"   r   r)   s         r   r   r     s0    4 
"
"7Hc4
@CgwS99r   c                 B    t        | t        j                        sy d }|S )Nc                 P   | j                   }| j                  }t        j                  |      rt        j                  |      rt        |      }|}ne|dk(  rt        |      }|}nRt        j                  |t        j                  |            }t        j                  |t        j                  |            }|dk  r| }t        ||      S t        t        j                  |      t        j                  |      z  t        j                  |      t        j                  |      z        S )zcmath.cosh(z)r2   )r   r   r3   r6   rU   r5   r|   r8   r9   r7   r   sinhr   rG   rH   r   r   s        r   	cosh_implz"impl_cmath_cosh.<locals>.cosh_impl  s    FFFF::a=zz!}1vc1v}}Q4}}Q43wu4&&txx{TYYq\1HHQK$))A,.0 	0r   rk   )r   r   s     r   impl_cmath_coshr     s     a'0, r   c                 L    d }| j                  ||||      }t        | |||      S )Nc                     t        j                  t        | j                   | j                              }t        |j                  |j                         S )z#cmath.sin(z) = -j * cmath.sinh(z j))rb   r   r7   r   r   r   r:   s     r   sin_implzsin_impl.<locals>.sin_impl7  8    JJww/0qvvw''r   re   )r&   r   r'   r"   r   r)   s         r   r   r   5  0    (
 
"
"7Hc4
@CgwS99r   c                 B    t        | t        j                        sy d }|S )Nc                    | j                   }| j                  }t        j                  |      rmt        j                  |      r|}|}nGt        j
                  |      }t        j                  |      }|dk7  r||z  }|dk7  r|t        |      z  }t        ||      S t        t        j
                  |      t        j                  |      z  t        j                  |      t        j                  |      z        S )zcmath.sinh(z)r2   )r   r   r3   r6   rU   r8   r9   r5   r7   r   r   r   s        r   	sinh_implz"impl_cmath_sinh.<locals>.sinh_implD  s    FFFF::a=zz!}xx{xx{2:AID2:CFND4&&txx{TYYq\1xx{TYYq\13 	3r   rk   )r   r   s     r   impl_cmath_sinhr   ?  s     a'3& r   c                 L    d }| j                  ||||      }t        | |||      S )Nc                     t        j                  t        | j                   | j                              }t        |j                  |j                         S )z#cmath.tan(z) = -j * cmath.tanh(z j))rb   tanhr7   r   r   r   s     r   tan_implztan_impl.<locals>.tan_impl\  r   r   re   )r&   r   r'   r"   r   r)   s         r   r   r   Z  r   r   c                 B    t        | t        j                        sy d }|S )Nc                    | j                   }| j                  }t        j                  |      rft        j                  d|      }t        j                  |      rd}n,t        j                  dt        j
                  d|z              }t        ||      S t        j                  |      }t        j                  |      }dt        j                  |      z  }||z  }d||z  z   }	t        |d||z  z   z  |	z  ||	z  |z  |z        S )zcmath.tanh(z)rw   r2          @)
r   r   r3   r6   r|   r9   r7   r   tanr   )
r   rG   rH   r   r   txtycxtxtydenoms
             r   	tanh_implz"impl_cmath_tanh.<locals>.tanh_implj  s    FFFF::a===Q'Dzz!}}}R"q&)9:4&& YYq\XXa[$))A,BwTD[ "rBw,%'5jB"$& 	&r   rk   )r   r   s     r   impl_cmath_tanhr   e  s     a'&, r   c                     t        j                  d      t        j                  dz  fd}| j	                  ||||      }t        | |||      S )N   c           	         t        | j                        kD  st        | j                        kD  rt        j                  t        | j                        | j                        }t        j
                  t        j                  t        j                  | j                  dz  | j                  dz              z   | j                         }t        ||      S t        j                  t        d| j                  z
  | j                               }t        j                  t        d| j                  z   | j                              }dt        j                  |j                  |j                        z  }t        j                  |j                  |j                  z  |j                  |j                  z  z
        }t        ||      S )zcmath.acos(z)r{   rw   r   )r5   r   r   r3   r\   r|   rZ   r[   r7   rb   r}   asinhr   r   r   s1s2LN_4r   s        r   	acos_implzacos_impl.<locals>.acos_impl  s/    qvv;#aff+"5 ::c!&&k1662D==AFFSL!&&3,?@4GD 4&&GBK!&&9:BGBK89B

277BGG44D::bgg/"''BGG2CCDD4&&r   r3   rZ   r	   r   rF   r   )r&   r   r'   r"   r   r)   r   r   s         @@r   r   r     sN    88A;Dq E'$ 
"
"7IsD
ACgwS99r   c                     t        | t        j                        sy t        j                  d      t
        j                  dz  fd}|S )Nr   c                 2   t        | j                        kD  st        | j                        kD  r|t        j                  t        j
                  | j                  dz  | j                  dz              z   }t        j                  | j                  | j                        }t        ||      S t        j                  t        | j                  dz
  | j                              }t        j                  t        | j                  dz   | j                              }t        j                  |j                  |j                  z  |j                  |j                  z  z         }dt        j                  |j                  |j                        z  }t        ||      S )zcmath.acosh(z)r{   rw   r   )r5   r   r   r3   rZ   r[   r\   r7   rb   r}   r   r   s        r   
acosh_implz$impl_cmath_acosh.<locals>.acosh_impl  s    qvv;#aff+"5 88DJJqvv|QVVc\BCdJD::affaff-D4&&GAFFRK89BGAFFRK89B::bgg/"''BGG2CCDD

277BGG44D4&&r   )r>   r   rl   r3   rZ   r	   r   )r   r   r   r   s     @@r   impl_cmath_acoshr     s>    a'88A;Dq E'$ r   c                     t        j                  d      t        j                  dz  fd}| j	                  ||||      }t        | |||      S )Nr   c           	         t        | j                        kD  st        | j                        kD  rt        j                  t        j
                  t        j                  | j                  dz  | j                  dz              z   | j                        }t        j                  | j                  t        | j                              }t        ||      S t        j                  t        d| j                  z   | j                               }t        j                  t        d| j                  z
  | j                              }t        j                  |j                  |j                  z  |j                  |j                  z  z
        }t        j                  | j                  |j                  |j                  z  |j                  |j                  z  z
        }t        ||      S )zcmath.asinh(z)r{   rw   )r5   r   r   r3   r|   rZ   r[   r\   r7   rb   r}   r   r   s        r   
asinh_implzasinh_impl.<locals>.asinh_impl  sA    qvv;#aff+"5==AFFSL!&&3,?@4GD ::affc!&&k2D4&&GBK!&&9:BGBK89B::bgg/"''BGG2CCDD::affbgg&7"''BGG:K&KLD4&&r   r   )r&   r   r'   r"   r   r)   r   r   s         @@r   r   r     sN    88A;Dq E'  
"
"7JT
BCgwS99r   c                 L    d }| j                  ||||      }t        | |||      S )Nc                     t        j                  t        | j                   | j                              }t        |j                  |j                         S )z%cmath.asin(z) = -j * cmath.asinh(z j))rb   r   r7   r   r   r   s     r   	asin_implzasin_impl.<locals>.asin_impl  s8    KK01qvvw''r   re   )r&   r   r'   r"   r   r)   s         r   r   r     s0    (
 
"
"7IsD
ACgwS99r   c                 L    d }| j                  ||||      }t        | |||      S )Nc                 h   t        j                  t        | j                   | j                              }t        j                  | j                        r?t        j                  | j                        r t        |j                  |j                        S t        |j                  |j                         S )z%cmath.atan(z) = -j * cmath.atanh(z j))rb   atanhr7   r   r   r3   r6   rU   r   s     r   	atan_implzatan_impl.<locals>.atan_impl  sl    KK01::aff$**QVV"4166166**166AFF7++r   re   )r&   r   r'   r"   r   r)   s         r   r   r     s0    , 
"
"7IsD
ACgwS99r   c                 <  	 t        j                  d      }t        j                  t        j                  dz        t        j                  t        j
                        	t         j                  dz  	fd}| j                  ||||      }t        | |||      S )Nr   rC   c           	      D   | j                   dk  rd}|  } nd}t        | j                        }t        j                  | j                         s| j                   	kD  s|	kD  rt        j
                  | j                        r!t        j                  d| j                         }ngt        j
                  | j                         rd}nEt        j                  | j                   dz  | j                  dz        }| j                   dz  |z  |z  }t        j                  | j                          }n5| j                   dk(  r|
k  r|dk(  rt        }| j                  }nt        j                  t        j                  |      t        j                  t        j                  |d            z         }t        j                  t        j                  d|       dz  | j                        }n|||z  }d	| j                   z
  }t        j                  d| j                   z  ||z  |z   z        d
z  }t        j                  d| j                  z  |d	| j                   z   z  |z
         dz  }t        j                  | j                        rt        }|rt        | |       S t        ||      S )zcmath.atanh(z)r2   TFr{   g      @rw   r   rC      rz   g       )r   r5   r   r3   rU   r6   r|   r[   INFrZ   r}   r\   log1prT   r7   )r   negateayr   hr   sqayzr1PI_12THRES_LARGETHRES_SMALLs           r   
atanh_implzatanh_impl.<locals>.atanh_impl  s    66B;FAF[::aff+!5k9Izz!&&!}}R0AFF# JJqvv|QVVc\:vvby{1}MM%!&&11DVVr\b;.Rxvv2!%4::b"+=!>"? @ @}}TZZRC%81%<affE7Daff*C::b166kS3Y-=>?$FDJJsQVV|"a!&&j1D8: :<?@D ::affDD54%((4&&r   )	r3   rZ   r}   r	   r   FLT_MINpirF   r   )
r&   r   r'   r"   r   r   r)   r   r   r   s
          @@@r   r   r     sy    88A;D))H,,q01K))H,,-KGGaKE*'X 
"
"7JT
BCgwS99r   )G__doc__rb   r3   numba.core.imputilsr   r   
numba.corer   r   numba.core.typingr   numba.cpythonr   r	   numba.core.extendingr
   registrylowerr   r   r   rU   rl   r*   r6   r-   r4   r/   rectr@   rO   floatrT   r   rS   rX   rZ   r_   rf   log10rm   phaserq   polarru   r}   r   r8   r   r   r   r9   r   r   r   r   r   r   r   acosr   acoshr   r   r   asinr   atanr   r   r   rN   r   r   <module>r      sm  
   < % ' , )K 99=
 u{{EMM"F #F u{{EMM"F #F u~~u}}%F &F 
%** 4& ElEluyy%-- &!  !&!P uyy%--   ! uyy%--/: 0: 
%++   
%++  
%++  uzz5==!9: "9:x uyy%-- : !: 
%** : uyy%-- : !: 
%** 4 uyy%-- : !: 
%** : uzz5==!: ":2 
%++ 8 u{{EMM": #:. uzz5==!: ": uzz5==!: ": u{{EMM"3: #3:r   