
    shD                        S r SSKrSSKrSSKJrJr  SSKJrJr  SSK	J
r
  SSKJrJr  SSKJr  \" S5      r\R"                  rS	 rS
 rS r\" \R*                  \R,                  5      S 5       r\" \R0                  \R,                  5      S 5       r\" \R4                  \R,                  5      S 5       r\" \R8                  5      S 5       rS r\" S5      r \" S5      r!\" \RD                  \R,                  5      \S 5       5       r#\" \RH                  \R,                  5      \S 5       5       r%\" \RH                  \R,                  \R,                  5      S 5       r&\" \RN                  5      S 5       r(\" \RR                  5      S 5       r*\" \RV                  5      S 5       r,\" \RZ                  \R,                  5      S 5       r.\" \R^                  \R,                  5      S 5       r0\" \Rb                  5      S 5       r2\" \Rf                  \R,                  5      S 5       r4\" \Rj                  5      S 5       r6\" \Rn                  \R,                  5      S 5       r8\" \Rr                  5      S 5       r:\" \Rv                  \R,                  5      S  5       r<\" \Rz                  5      S! 5       r>\" \R~                  \R,                  5      S" 5       r@\" \R                  \R,                  5      S# 5       rB\" \R                  \R,                  5      S$ 5       rD\" \R                  \R,                  5      S% 5       rFg)&z'
Implement the cmath module functions.
    N)Registryimpl_ret_untracked)typescgutils)	signature)builtinsmathimpl)overload	cmathimplc                 P    U R                  SUR                  UR                  5      $ )Nuno)fcmp_unorderedrealimagbuilderzs     k/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cpython/cmathimpl.pyis_nanr      s    !!%88    c                     U R                  [        R                  " XR                  5      [        R                  " XR                  5      5      $ N)or_r	   is_infr   r   r   s     r   r   r      s2    ;;xw7w79 9r   c                     U R                  [        R                  " XR                  5      [        R                  " XR                  5      5      $ r   )and_r	   	is_finiter   r   r   s     r   r   r      s6    <<**7FF; **7FF;= =r   c                     UR                   u  nUu  nU R                  XUS9n[        X5      n[        XUR                  U5      $ Nvalue)argsmake_complexr   r   return_typecontextr   sigr"   typr!   r   ress           r   isnan_float_implr*      F    HHESGUW7A

CgEEr   c                     UR                   u  nUu  nU R                  XUS9n[        X5      n[        XUR                  U5      $ r   )r"   r#   r   r   r$   r%   s           r   isinf_float_implr-   '   r+   r   c                     UR                   u  nUu  nU R                  XUS9n[        X5      n[        XUR                  U5      $ r   )r"   r#   r   r   r$   r%   s           r   isfinite_float_implr/   0   sF    HHESGUW7A
G
CgEEr   c           	          [        X4 Vs/ s H  n[        U[        R                  5      PM     sn5      (       a  S nU$ g s  snf )Nc                    [         R                  " U5      (       d8  U (       d  [        U 5      $ [         R                  " U 5      (       a  [	        X5      $ [         R
                  " U5      n[         R                  " U5      nUS:X  a   [         R                  " U 5      (       a  X -  nOX -  nUS:X  a   [         R                  " U 5      (       a  X0-  nOX0-  n[	        X#5      $ )N        )mathisfiniteabsisinfcomplexcossin)rphir   r   s       r   implimpl_cmath_rect.<locals>.impl<   s    ==%%q6M::a=="1?*88C=D88C=Drzdjjmm		rzdjjmm		4&&r   )all
isinstancer   Float)r:   r;   r(   r<   s       r   impl_cmath_rectrA   9   s=    
QH=HSJsEKK(H=>>	'* - ?=s   $Ac                    ^  U 4S jnU$ )Nc           	        > UR                   u  nUu  nU R                  XUS9nUR                  nUR                  n[        R
                  " X5      n	[        R
                  " X5      n
[        UR                  /UR                  4S-  [        R                  4S-  -   Q76 nU R                  UTUXxX45      n[        XX,5      $ )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   wrapper(intrinsic_complex_unary.<locals>.wrapperU   s      U ;FFFF ((4((4coo S # 4 46:emm=MPQ=QQS	&&w
I)*{(HJ!'C==r    )rM   rN   s   ` r   intrinsic_complex_unaryrQ   T   s    > Nr   naninfc                    U(       am  U(       aR  [         R                  " U5      n[         R                  " U5      n[         R                  " U 5      n[	        Xd-  Xe-  5      $ [	        [
        [
        5      $ [         R                  " U 5      (       a  U(       a  [	        X 5      $ [	        X5      $ U S:  ab  U(       aK  [         R                  " U5      n[         R                  " U5      nUS:w  a  Xp-  nUS:w  a  X-  n[	        Xx5      $ [	        U [
        5      $ U(       aR  [         R                  " U 5      n[         R                  " U5      n[         R                  " U5      n[	        Xd-  Xe-  5      $ Sn[	        Xf5      $ )zcmath.exp(x + y j)r2   r   )r3   r8   r9   expr7   NANisnan)	rH   rI   rJ   rK   csr:   r   r   s	            r   exp_implrZ   j   s    AAA15!%((3$$	A1= 1= 	
S88A;D88A;D qy	qy	4&&1c?" AAA15!%((A1= r   c                     [         R                  " [         R                  " X5      5      n[         R                  " X5      n[	        XE5      $ )zcmath.log(x + y j))r3   loghypotatan2r7   )rH   rI   rJ   rK   abs         r   log_implra      s3     	A!"A

1A1=r   c                 L    Uu  pES nU R                  XX#5      n[        XX'5      $ )zcmath.log(z, base)c                 \    [         R                  " U 5      [         R                  " U5      -  $ r   )cmathr\   )r   bases     r   log_baselog_base_impl.<locals>.log_base   s    yy|eiio--r   rG   r   )r&   r   r'   r"   r   re   rf   r)   s           r   log_base_implri      s1     IQ. 
"
"7c
@Cg99r   c                 X   ^ [        U [        R                  5      (       d  g SmU4S jnU$ )NgUk@c                 |   > [         R                  " U 5      n [        U R                  T-  U R                  T-  5      $ )zcmath.log10(z))rd   r\   r7   r   r   )r   LN_10s    r   
log10_impl$impl_cmath_log10.<locals>.log10_impl   s/    IIaL qvv~qvv~66r   r?   r   Complex)r   rm   rl   s     @r   impl_cmath_log10rq      s)    a'' E7 r   c                 L    [        U [        R                  5      (       d  gS nU$ )zcmath.phase(x + y j)Nc                 X    [         R                  " U R                  U R                  5      $ r   )r3   r^   r   r   )rH   s    r   r<   phase_impl.<locals>.impl   s    zz!&&!&&))r   ro   rH   r<   s     r   
phase_implrv      s"     a''*Kr   c                 L    [        U [        R                  5      (       d  g S nU$ )Nc                     U R                   U R                  p![        R                  " X5      [        R                  " X!5      4$ r   )r   r   r3   r]   r^   )rH   r:   is      r   r<   polar_impl.<locals>.impl   s.    vvqvv1zz!A!111r   ro   ru   s     r   
polar_implr{      s"    a''2 Kr   c                    ^
 SnSU-   nUR                   S   R                  nUR                  S:X  a  [        R                  O[        R
                  nXu-  m
U
4S jnU R                  XX#5      n	[        XX)5      $ )Ng;f?      ?r   @   c                   > U R                   nU R                  nUS:X  a  US:X  a  [        [        U5      U5      $ [        R
                  " U5      (       a  [        [        U5      U5      $ [        R                  " U5      (       a  [        X5      $ [        R
                  " U5      (       aT  US:  a+  [        [        X"-
  5      [        R                  " X5      5      $ [        U[        R                  " X"-
  U5      5      $ [        U5      T:  d  [        U5      T:  a  US-  nUS-  nSnOSnUS:  a;  [        R                  " U[        R                  " X5      -   S-  5      nUnUSU-  -  nOX[        R                  " U* [        R                  " X5      -   S-  5      n[        U5      SU-  -  n[        R                  " XB5      nU(       a  [        US-  U5      $ [        XV5      $ )zcmath.sqrt(z)r2         ?TFr         ?rD   )
r   r   r7   r5   r3   r6   rW   copysignsqrtr]   )r   r_   r`   scaletr   r   THRESs          r   	sqrt_implsqrt_impl.<locals>.sqrt_impl   s    FFFF8S3q61%%::a==3q61%%::a==1= ::a==3ws15z4==+>??q$--q"9:: q6U?c!foIAIAEE6		1tzz!//367ADA;D		A2

1 00C78Aq6QU#D==&D4!8T**4&&r   )r"   rE   bitwidthr	   DBL_MAXFLT_MAXrG   r   )r&   r   r'   r"   SQRT2ONE_PLUS_SQRT2	theargfltMAXr   r)   r   s             @r   r   r      sw     5E5jN,,I'00B6(

H<L<LC
  E('T 
"
"7s
ACg99r   c                 D    S nU R                  XX#5      n[        XX%5      $ )Nc                 l    [         R                  " [        U R                  * U R                  5      5      $ )zcmath.cos(z) = cmath.cosh(z j))rd   coshr7   r   r   )r   s    r   cos_implcos_impl.<locals>.cos_impl  s"    zz'166'166233r   rh   )r&   r   r'   r"   r   r)   s         r   r   r     s(    4 
"
"7c
@Cg99r   c                 L    [        U [        R                  5      (       d  g S nU$ )Nc                 z   U R                   nU R                  n[        R                  " U5      (       a  [        R                  " U5      (       a  [        U5      nUnOjUS:X  a  [        U5      nUnOV[        R                  " U[        R                  " U5      5      n[        R                  " U[        R                  " U5      5      nUS:  a  U* n[        X45      $ [        [        R                  " U5      [        R                  " U5      -  [        R                  " U5      [        R                  " U5      -  5      $ )zcmath.cosh(z)r2   )r   r   r3   r6   rW   r5   r   r8   r9   r7   r   sinhr   rH   rI   r   r   s        r   	cosh_impl"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   ro   )r   r   s     r   impl_cmath_coshr     s#    a''0, r   c                 D    S nU R                  XX#5      n[        XX%5      $ )Nc                     [         R                  " [        U R                  * U R                  5      5      n[        UR                  UR                  * 5      $ )z#cmath.sin(z) = -j * cmath.sinh(z j))rd   r   r7   r   r   r   r:   s     r   sin_implsin_impl.<locals>.sin_impl7  8    JJww/0qvvw''r   rh   )r&   r   r'   r"   r   r)   s         r   r   r   5  (    (
 
"
"7c
@Cg99r   c                 L    [        U [        R                  5      (       d  g S nU$ )Nc                    U R                   nU R                  n[        R                  " U5      (       au  [        R                  " U5      (       a  UnUnOJ[        R
                  " U5      n[        R                  " U5      nUS:w  a  X1-  nUS:w  a  U[        U5      -  n[        X45      $ [        [        R
                  " U5      [        R                  " U5      -  [        R                  " U5      [        R                  " U5      -  5      $ )zcmath.sinh(z)r2   )r   r   r3   r6   rW   r8   r9   r5   r7   r   r   r   s        r   	sinh_impl"impl_cmath_sinh.<locals>.sinh_implD  s    FFFF::a==zz!}}xx{xx{2:ID2:CFND4&&txx{TYYq\1xx{TYYq\13 	3r   ro   )r   r   s     r   impl_cmath_sinhr   ?  s#    a''3& r   c                 D    S nU R                  XX#5      n[        XX%5      $ )Nc                     [         R                  " [        U R                  * U R                  5      5      n[        UR                  UR                  * 5      $ )z#cmath.tan(z) = -j * cmath.tanh(z j))rd   tanhr7   r   r   r   s     r   tan_impltan_impl.<locals>.tan_impl\  r   r   rh   )r&   r   r'   r"   r   r)   s         r   r   r   Z  r   r   c                 L    [        U [        R                  5      (       d  g S nU$ )Nc                 "   U R                   nU R                  n[        R                  " U5      (       an  [        R                  " SU5      n[        R                  " U5      (       a  SnO.[        R                  " S[        R
                  " SU-  5      5      n[        X45      $ [        R                  " U5      n[        R                  " U5      nS[        R                  " U5      -  nXV-  nSX-  -   n	[        USXf-  -   -  U	-  Xi-  U-  U-  5      $ )zcmath.tanh(z)r}   r2          @)
r   r   r3   r6   r   r9   r7   r   tanr   )
r   rH   rI   r   r   txtycxtxtydenoms
             r   	tanh_impl"impl_cmath_tanh.<locals>.tanh_implj  s    FFFF::a====Q'Dzz!}}}}R"q&)9:4&& YYq\XXa[$))A,wT[ "rw,%'jB"$& 	&r   ro   )r   r   s     r   impl_cmath_tanhr   e  s#    a''&, r   c                    ^^ [         R                  " S5      m[        R                  S-  mUU4S jnU R	                  XX#5      n[        XX%5      $ )N   c           	        > [        U R                  5      T:  d  [        U R                  5      T:  a  [        R                  " [        U R                  5      U R                  5      n[        R
                  " [        R                  " [        R                  " U R                  S-  U R                  S-  5      5      T-   U R                  * 5      n[        X5      $ [        R                  " [        SU R                  -
  U R                  * 5      5      n[        R                  " [        SU R                  -   U R                  5      5      nS[        R                  " UR                  UR                  5      -  n[        R                  " UR                  UR                  -  UR                  UR                  -  -
  5      n[        X5      $ )zcmath.acos(z)r   r}   r   )r5   r   r   r3   r^   r   r\   r]   r7   rd   r   asinhr   r   r   s1s2LN_4r   s        r   	acos_impl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   r\   r	   r   rG   r   )r&   r   r'   r"   r   r)   r   r   s         @@r   r   r     sF    88A;Dq E'$ 
"
"7s
ACg99r   c                    ^^ [        U [        R                  5      (       d  g [        R                  " S5      m[
        R                  S-  mUU4S jnU$ )Nr   c                 @  > [        U R                  5      T:  d  [        U R                  5      T:  a~  [        R                  " [        R
                  " U R                  S-  U R                  S-  5      5      T-   n[        R                  " U R                  U R                  5      n[        X5      $ [        R                  " [        U R                  S-
  U R                  5      5      n[        R                  " [        U R                  S-   U R                  5      5      n[        R                  " UR                  UR                  -  UR                  UR                  -  -   5      nS[        R                  " UR                  UR                  5      -  n[        X5      $ )zcmath.acosh(z)r   r}   r   )r5   r   r   r3   r\   r]   r^   r7   rd   r   r   r   s        r   
acosh_impl$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   rp   r3   r\   r	   r   )r   r   r   r   s     @@r   impl_cmath_acoshr     sA    a''88A;Dq E'$ r   c                    ^^ [         R                  " S5      m[        R                  S-  mUU4S jnU R	                  XX#5      n[        XX%5      $ )Nr   c           	        > [        U R                  5      T:  d  [        U R                  5      T:  a  [        R                  " [        R
                  " [        R                  " U R                  S-  U R                  S-  5      5      T-   U R                  5      n[        R                  " U R                  [        U R                  5      5      n[        X5      $ [        R                  " [        SU R                  -   U R                  * 5      5      n[        R                  " [        SU R                  -
  U R                  5      5      n[        R                  " UR                  UR                  -  UR                  UR                  -  -
  5      n[        R                  " U R                  UR                  UR                  -  UR                  UR                  -  -
  5      n[        X5      $ )zcmath.asinh(z)r   r}   )r5   r   r   r3   r   r\   r]   r^   r7   rd   r   r   r   s        r   
asinh_implasinh_impl.<locals>.asinh_impl  s=    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     sF    88A;Dq E'  
"
"7
BCg99r   c                 D    S nU R                  XX#5      n[        XX%5      $ )Nc                     [         R                  " [        U R                  * U R                  5      5      n[        UR                  UR                  * 5      $ )z%cmath.asin(z) = -j * cmath.asinh(z j))rd   r   r7   r   r   r   s     r   	asin_implasin_impl.<locals>.asin_impl  s8    KK01qvvw''r   rh   )r&   r   r'   r"   r   r)   s         r   r   r     s(    (
 
"
"7s
ACg99r   c                 D    S nU R                  XX#5      n[        XX%5      $ )Nc                    [         R                  " [        U R                  * U R                  5      5      n[
        R                  " U R                  5      (       aE  [
        R                  " U R                  5      (       a   [        UR                  UR                  5      $ [        UR                  UR                  * 5      $ )z%cmath.atan(z) = -j * cmath.atanh(z j))rd   atanhr7   r   r   r3   r6   rW   r   s     r   	atan_implatan_impl.<locals>.atan_impl  sr    KK01::aff$**QVV"4"4166166**166AFF7++r   rh   )r&   r   r'   r"   r   r)   s         r   r   r     s(    , 
"
"7s
ACg99r   c                 <  ^^^	 [         R                  " S5      n[         R                  " [        R                  S-  5      m[         R                  " [        R
                  5      m	[         R                  S-  mUUU	4S jnU R                  XX#5      n[        XX&5      $ )Nr   rD   c           	        > U R                   S:  a  SnU * n OSn[        U R                  5      n[        R                  " U R                   5      (       d  U R                   T	:  d  UT	:  a  [        R
                  " U R                  5      (       a"  [        R                  " SU R                   5      nOn[        R
                  " U R                   5      (       a  SnOF[        R                  " U R                   S-  U R                  S-  5      nU R                   S-  U-  U-  n[        R                  " TU R                  * 5      * nGO>U R                   S:X  a  UT
:  a  US:X  a  [        nU R                  nGO[        R                  " [        R                  " U5      [        R                  " [        R                  " US5      5      -  5      * n[        R                  " [        R                  " SU* 5      S-  U R                  5      nO|X"-  nS	U R                   -
  n[        R                  " SU R                   -  Xw-  U-   -  5      S
-  n[        R                  " SU R                  -  US	U R                   -   -  U-
  5      * S-  n[        R                  " U R                  5      (       a  [        nU(       a  [        U* U* 5      $ [        X55      $ )zcmath.atanh(z)r2   TFr   g      @r}   r   rD      r   g       )r   r5   r   r3   rW   r6   r   r]   INFr\   r   r^   log1prV   r7   )r   negateayr   hr   sqayzr1PI_12THRES_LARGETHRES_SMALLs           r   
atanh_impl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::b166kSY-=>?$FDJJsQVV|"a!&&j1D8: :<?@D ::affDD54%((4&&r   )	r3   r\   r   r	   r   FLT_MINpirG   r   )
r&   r   r'   r"   r   r   r)   r   r   r   s
          @@@r   r   r     sq    88A;D))H,,q01K))H,,-KGGaKE*'X 
"
"7
BCg99r   )G__doc__rd   r3   numba.core.imputilsr   r   
numba.corer   r   numba.core.typingr   numba.cpythonr   r	   numba.core.extendingr
   registrylowerr   r   r   rW   rp   r*   r6   r-   r4   r/   rectrA   rQ   floatrV   r   rU   rZ   r\   ra   ri   log10rq   phaserv   polarr{   r   r   r8   r   r   r   r9   r   r   r   r   r   r   r   acosr   acoshr   r   r   asinr   atanr   r   r   rP   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   