
    ih|                     Z   d Z ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZmZ dd	lmZ d
ZdZdZddZej<                  rej>                  Z nejB                  Z e fdZ"d Z#d Z$d Z%d Z&d Z'd Z(d Z)e(Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z0 e1e0eejd                  ejf                         d Z4d Z5d  Z6 ee6d!"      d#        Z7 e1e5d$e6ejp                         d% Z9d& Z:d' Z;d( Z<d) Z=d* Z>d+ Z?d, Z@d- ZAd. ZBd/ ZCd0 ZDd1 ZEd2 ZFd3 ZGd4 ZHd5 ZId6 ZJd7 ZKd8 ZLd9 ZMd: ZNd; ZOd< ZPd= ZQd> ZRd? ZSd@ ZTdA ZUdB ZVdC ZWdD ZXdE ZYdF ZZdG Z[dH Z\dI Z]dJ Z^dK Z_dL Z`dM ZadN ZbdO ZcdP ZddQ ZedR ZfdS ZgdT ZhdU ZidV ZjdW ZkdX ZldY ZmdZ Znd[ Zod\ Zpd] Zqd^ Zrd_ Zsd` Ztda Zudb Zvdc Zwdd Zxde Zydf Zzdg Z{dh Z|di Z}dj Z~dk Zdl Zdm Zdn Zdo Zdp Zdq Zdr Zds Zdt Zdu Zdv Zdw Zdx Zdy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)zCodegen for functions used as kernels in NumPy functions

Typically, the kernels of several ufuncs that can't map directly to
Python builtins
    Noverload)impl_ret_untracked)typingtypeserrorsloweringcgutilsconfig)register_jitable)
npdatetime)	cmathimplmathimplnumbers)numpy_versiong+eG?g&{?g9B.?c                 p   t        |      |k(  sJ t        | j                        |k(  sJ | j                  d   |}t        fd| j                  D              r| j                  |k(  sKddl}|j                         j                  j                  j                  }dj                  ||       }J |       y)zchecks that the following are true:
    - args and sig.args have arg_count elements
    - all input types are homogeneous
    - return type is 'return_type' if provided, otherwise it must be
      homogeneous with the input types.
    r   Nc              3   (   K   | ]	  }|k(    y wN ).0argtys     O/var/www/html/dev/engine/venv/lib/python3.12/site-packages/numba/np/npyfuncs.py	<genexpr>z/_check_arity_and_homogeneity.<locals>.<genexpr>*   s     ,CR,s   z"{0} called with invalid types: {1})
lenargsallreturn_typeinspectcurrentframef_backf_codeco_nameformat)sigr   arityr   r   fnamemsgr   s          @r   _check_arity_and_homogeneityr)      s     t9sxx=E!!!	!B,388,,K1O$$&--44<<299%Ecu	 2P    c           
         |j                   }| j                  |      }t        j                  j	                  ||gt        |j                        z        }t        j                  |||      }	t        ||j                        D 
cg c]  \  }
}| j                  ||
||       }}
}|j                  |	|      }| j                  ||t        j                  |j                        S c c}}
w )Nname)moduleget_argument_typellvmliteirFunctionTyper   r   r
   insert_pure_functionzipcastcallr   float64r   )contextbuilderr%   r   	func_namer   modltyfntyfnr   argty	cast_argsresults                 r   _call_func_by_name_with_castrB   5   s    
 ..C

#
#B
'C;;##C#s388})<=D		%	%c4i	@B#&tSXX#69S% gsE26 9I 9 \\"i(F<<HH	9s   C%c                 R   |j                   d   }	 ||   }|j                  }
|t        j                  v r	| j                  ||      }|D cg c]  }t        j                  ||       }}|j                         g|z   }|gt        |j                         z   }|D cg c]!  }| j                  |      j                         # }}t         j"                  j%                  t         j"                  j'                         |      }t        j(                  |
||      }|j+                  ||       |j-                  |d         }|S |j                   D cg c]  }| j/                  |       }}| j/                  |j0                        }t         j"                  j%                  ||      }t        j2                  |
||      }| j5                  |||j                   |      }|S # t        $ r5}dj                  |t        |            }	t	        j
                  |	      d }~ww xY wc c}w c c}w c c}w )Nr   z!No {0} function for real type {1}r,   )r   KeyErrorr$   strr   LoweringErrorr.   r   complex_domainmake_complexr
   alloca_once_value_getpointerlistget_value_type
as_pointerr0   r1   r2   VoidTypeget_or_insert_functionr6   loadr/   r   r3   call_external_function)r8   r9   r%   r   table	user_namer   r:   er(   r;   outr   ptrargs	call_argscall_argtyscall_argltysr=   r>   retvalatyargtypesrestypes                          r   _dispatch_func_by_name_typer^   E   s    
!B("I	
 ..C	U!!! ""7B/"$ ,,Wc: $ $__&''1	
 dT#((^+"-/  ..r2==? / /{{''(<(<(>M++CyAR#il+ M ?BhhGsG--c2GG++COO<{{'':))#t)D//SXXtLME  (188CFK""3''($/ Hs)   G H&HH$	H"0HHc                 P   t        ||d       |\  }}|j                  d   }| j                  |d      }| j                  |d      }| j                  |d|j                  j                  dz
  z        }	|j                  d||      }
|j                  d||      }|j                  d|	|      }|j                  ||      }|j                  |
|      }|j                  |d      5 \  }}|5  |j                  }d d d        |5  |j                  }|j                  ||      }|j                  ||      }|j                  d||      }|j                  d||      }|j                  ||      }|j                  d	||      }|j                  ||      }|j                  |||      }|j                  ||      }d d d        d d d        |j!                  |j                        }|j#                  |       |j#                         |S # 1 sw Y   xY w# 1 sw Y   _xY w# 1 sw Y   cxY w)
N   r      ==Flikely>!=)r)   r   get_constanttypewidthicmp_unsignedand_or_if_elsebasic_blocksdivsremicmp_signedxorselectaddphiadd_incoming)r8   r9   r%   r   numdenr   ZERO	MINUS_ONEMIN_INTden_is_zeroden_is_minus_onenum_is_min_intcould_cause_sigfpe
force_zerothen	otherwisebb_thenbb_otherwisedivr;   num_gt_zeroden_gt_zeronot_same_signmod_not_zeroneeds_fixing	fix_valueresult_otherwiserA   s                                r   np_int_sdiv_implr      s    dA.HC	!BA&D$$R,I""2qSXX^^A-='>?G''dC8K,,T9cB**4#>N &6G[*<=J	E	2 ;6GtY 	*))G	* 
	;"..L,,sC(C,,sC(C!--c3=K!--c3=K#KK[AM"00sDAL"<<|DL|YEI&{{3	:
	;; [[#F
g&
(,7M%	* 	*
	; 
	;; ;s=   "H(H5
H?B3H2HH	HH	HH%c                    t        ||d       |\  }}|j                  d   }| j                  |d      }|j                  d||      }|j                  }	t        j                  ||      5  |j                  }
|j                  ||      }|j                  d||      }|j                  d||      }|j                  ||      }|j                  d||      }|j                  ||      }|j                  |||      }|j                  ||      }d d d        |j                  |j                        }|j                  ||	       |j                  
       |S # 1 sw Y   JxY w)Nr`   r   rg   rf   )r)   r   rh   rk   ro   r
   if_unlikelyrq   rr   rs   rl   rt   ru   rv   ri   rw   )r8   r9   r%   r   rx   ry   r   rz   den_not_zerobb_no_ifbb_ifr;   r   r   r   r   r   r   	final_modrA   s                       r   np_int_srem_implr      sL    dA.HC	!BA&D((tS9L""H			Wl	3 	0##ll3s#))#sD9))#sD9K=,,T3=||M<@NN<d;	KK	3/		0 [[#F
h'
	5)M	0 	0s   )B!EEc                     t        | | |j                  d   |j                   |      }t        | | |j                  d   |j                   |      }| j	                  ||j                  ||g      S Nr   rb   )r   r   r   r   
make_tupler8   r9   r%   r   r   rems         r   np_int_sdivrem_implr      i    
7G-?S__Q-?-JD
QC
7G-?S__Q-?-JD
QCgsc
CCr*   c                    t        ||d       |\  }}|j                  d   }| j                  |d      }|j                  d||      }|j	                  |d      5 \  }	}
|	5  |j
                  }d d d        |
5  |j                  ||      }|j
                  }d d d        d d d        |j                  |j                        }|j                  |       |j                         |S # 1 sw Y   {xY w# 1 sw Y   ^xY w# 1 sw Y   bxY w)Nr`   r   rc   Frd   )
r)   r   rh   rk   rn   ro   udivrv   ri   rw   )r8   r9   r%   r   rx   ry   r   rz   div_by_zeror   r   r   r   r   rA   s                  r   np_int_udiv_implr      s    dA.HC	!BA&D''dC8K	U	3 /7Hi 	*))G	*  	/,,sC(C"..L	/	/ [[#F
g&
\*M	* 	*	/ 	/	/ /s<   C? C'-
C?7C3C?'C0	,C?3C<	8C??Dc                    t        ||d       |\  }}|j                  d   }| j                  |d      }|j                  d||      }|j                  }	t        j                  ||      5  |j                  }
|j                  ||      }d d d        |j                  |j                        }|j                  ||	       |j                  
       |S # 1 sw Y   JxY w)Nr`   r   rg   )r)   r   rh   rk   ro   r
   r   uremrv   ri   rw   )r8   r9   r%   r   rx   ry   r   rz   r   r   r   r;   rA   s                r   np_int_urem_implr      s     dA.HC	!BA&D((tS9L""H			Wl	3 $##ll3s#$ [[#F
h'
U#M$ $s   )CCc                     t        | | |j                  d   |j                   |      }t        | | |j                  d   |j                   |      }| j	                  ||j                  ||g      S r   )r   r   r   r   r   r   s         r   np_int_udivrem_implr      r   r*   c                 :    t        ||d        |j                  | S Nr`   )r)   fdivr8   r9   r%   r   s       r   np_real_div_implr     s!     !dA.7<<r*   c                    t        ||d       |\  }}|j                  d   }| j                  |d      }|j                  ||      }|j	                  d||      }	|j	                  d||      }
|j	                  d||      }|j                  |	|j                  |
|            }|j                  |||      }|j                  ||      S )Nr`   r           rg   <)	r)   r   rh   fremfcmp_orderedrl   rs   rt   fadd)r8   r9   r%   r   in1in2r   rz   resres_ne_zeroden_lt_zerores_lt_zeror   r   s                 r   np_real_mod_implr     s     !dA.HC	!BC(D
,,sC
 C&&tS$7K&&sC6K&&sC6K<< 'K EGL|S$7I<<Y''r*   c                 :    t        ||d        |j                  | S r   )r)   r   r   s       r   np_real_fmod_implr     s     dA.7<<r*   c                     t         j                  j                  |j                  d      }|j	                  ||      }|j                  d||      }|j                  |||      S )Nr   r   )r0   r1   Constantri   fsubr   rt   )r8   r9   r   rz   arg_negatedarg_is_negatives         r   _fabsr      sS    ;;#.D,,tS)K**3T:O>>/;<<r*   c           	         |D cg c]#  }| j                  ||j                  d   |      % c}\  }}|j                  }|j                  }|j                  }	|j                  }
|j                  }t        |||	|
fD cg c]  }|j                  |k(   c}      sJ d       | j                  ||j                        }t        j                  j                  |d      }t        j                  j                  |d      }t        | ||	      }t        | ||
      }|j                  d||      }|j                  |      5 \  }}|5  |j                  d||      }|j                  d||      }|j                  ||      }|j                  |      5 \  }}|5  |j                  ||      |_        |j                  ||      |_        d d d        |5  |j                  |
|	      }|j!                  |
|      }|j#                  |	|      }|j                  ||      }|j!                  ||      }|j!                  ||      }|j#                  ||      } |j%                  ||      }!|j!                  | |      |_        |j!                  |!|      |_        d d d        d d d        d d d        |5  |j                  |	|
      }|j!                  |	|      }|j#                  |
|      }|j                  ||      }|j!                  ||      }|j!                  ||      }|j#                  ||      } |j%                  ||      }!|j!                  | |      |_        |j!                  |!|      |_        d d d        d d d        |j'                         S c c}w c c}w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   _xY w# 1 sw Y   |j'                         S xY w)Nr   valuemismatched typesr         ?>=rc   )rH   r   realimagri   r   make_helperr   r0   r1   r   r   r   rn   rl   r   fmulr   r   	_getvalue)"r8   r9   r%   r   r   r   r   in1rin1iin2rin2iftypeirU   rz   ONEin2r_absin2i_absin2r_abs_ge_in2i_absr   r   in2r_is_zeroin2i_is_zeroin2_is_zeroinn_theninn_otherwiserattmp1tmp2scltmp3tmp4tmp5tmp6s"                                     r   np_complex_div_implr   '  s     ! $$Wchhqk$E !HC 88D88D88D88DIIEdD$'?@!@AUCUUA


gs
7C;;s+D
++

uc
*C Wgt,HWgt,H"//hI	-	. +/2C4 	7"//hEL"//hEL!,,|\BK- 71J(M <  '||D(;CH&||D(;CH	<
 # 7 ",,tT2C"<<c2D"<<d3D!,,sD1C #<<c2D"<<c2D"<<d3D"<<d3D&||D#6CH&||D#6CH77	76  	/ ,,tT*C<<c*D<<d+D,,sD)C <<c*D<<c*D<<d+D<<d+D||D#.CH||D#.CH	/9+/Z ==?! A"< <
7 77 7	7 	76	/ 	/9+/Z ==?s   (N<N:O A
N2
N%/N	?
N%	B?N	N%N2
O"B?N?!ONN%N"N%%N/*N22N<	7O?O	OO#c                      y r   r   x1x2s     r   _npy_logaddexpr   t      r*   c                 8    t        | d      fd       }y )Ngenerictargetc                 4    | |k7  ry  |       fd}|S )Nc                     | |}}||k(  r|z   S ||z
  }|dkD  r|  |             z   S |dk  r|  |            z   S |S )Nr   r   )r   r   xytmpexpfnlog1pfnshifts        r   implz;_generate_logaddexp.<locals>.ol_npy_logaddexp.<locals>.impl  se    rqAQ5y !e!GwucT{333QhwuSz222 Jr*   r   )r   r   r   r   constr   r   s      @r   ol_npy_logaddexpz-_generate_logaddexp.<locals>.ol_npy_logaddexp{  s"    85		 r*   r   )
fnoverloadr   r   r   r   s    ``` r   _generate_logaddexpr   w  s     j+ ,r*   c                      y r   r   r   s     r   r   r     r   r*   c                     t        ||d       | j                  j                  t              }|j	                  | j                  g |j
                  i       }| j                  ||      } |||      S r   )r)   typing_contextresolve_value_typer   get_call_typer   get_functionr8   r9   r%   r   r=   r   s         r   np_real_logaddexp_implr    se     dA.!!44^DD


W33\sxx\2
FCc*Dr*   c                      y r   r   r   s     r   _npy_logaddexp2r    r   r*   c                      y r   r   r   s    r   npy_log2_1pr    r   r*   r   r   c                 *     | t               fd}|S )Nc                 4    t        j                  |       z  S r   )nplog1p)r   LOG2Es    r   r   zol_npy_log2_1p.<locals>.impl  s    rxx{""r*   )
_NPY_LOG2E)r   r   r  s     @r   ol_npy_log2_1pr    s    jME#Kr*   r   c                     t        ||d       | j                  j                  t              }|j	                  | j                  g |j
                  i       }| j                  ||      } |||      S r   )r)   r   r   r  r   r   r   r   s         r   np_real_logaddexp2_implr    se     dA.!!44_ED


W33\sxx\2
FCc*Dr*   c                 &   |\  }}|j                   t        fd|D              sJ d       |j                  \  }}| j                  |||t        j
                        }| j                  |||t        j
                        }|j                  ||      S )Nc              3   <   K   | ]  }|j                   k(    y wr   )ri   )r   r   lltypes     r   r   z&np_int_truediv_impl.<locals>.<genexpr>  s     ,!qvvv~,s   zmust have homogeneous types)ri   r   r   r5   r   r7   r   )	r8   r9   r%   r   rx   ry   numtydentyr  s	           @r   np_int_truediv_implr    s     HCXXF,t,,K.KK,88LE5
,,wUEMM
:C
,,wUEMM
:C<<C  r*   c                     t        | |||      }t        j                  |j                  |j                        }t	        | |||f      S r   )r   r   	signaturer   np_real_floor_impl)r8   r9   r%   r   r   ss         r   np_real_floor_div_implr    s?    
7GS$
7C#//:AgwC6::r*   c                     t        | | |j                  d   |j                   |      }t        | | |j                  d   |j                   |      }| j	                  ||j                  ||g      S r   )r  r   r   r   r   r   s         r   np_real_divmod_implr    sj    
 '3E3??13Esxx3PRV
WC
7G-?S__Q-?-JD
QCgsc
CCr*   c                 ~   |j                   d   j                  }t        j                  ||      }|D cg c]#  }| j	                  ||j                   d   |      % c}\  }}|j
                  }	|j                  }
|j
                  }|j                  }|	j                  }t        |	|
||fD cg c]  }|j                  |k(   c}      sJ d       t        j                  j                  |d      }| j                  ||j                        }||_        t        | ||      }t        | ||      }|j                  d||      }|j!                  |      5 \  }}|5  |j#                  ||      }|j%                  |
|      }|j%                  ||      }|j'                  |	|      }|j'                  ||      }|j#                  ||      }t)        | |||f      |_        d d d        |5  |j#                  ||      }|j%                  |	|      }|j%                  ||      }|j'                  |
|      }|j'                  ||      }|j#                  ||      }t)        | |||f      |_        d d d        d d d        |j+                         S c c}w c c}w # 1 sw Y   xY w# 1 sw Y   7xY w# 1 sw Y   |j+                         S xY w)Nr   r   r   r   r   )r   underlying_floatr   r  rH   r   r   ri   r   r0   r1   r   r   r   r   r   rn   r   r   r   r  r   )r8   r9   r%   r   
float_kind	floor_sigr   r   r   r   r   r   r   r   r   rz   rU   r   r   r   r   r   r   r   r   r   r   r   s                               r   np_complex_floor_div_implr!    s    !--J  Z8I  ! $$Wchhqk$E !HC 88D88D88D88DIIEdD$'?@!@AUCUUA;;s+D


gs
7CCHWgt,HWgt,H"//hI	-	. P2C4 	P,,tT*C<<c*D<<c*D<<d+D<<d+D<<d+D)'7IwOCH	P  	P,,tT*C<<c*D<<c*D<<d+D<<d+D<<d+D)'7IwOCH	PP& ==?M! A	P 	P	P 	PP& ==?sI   (J+JJ$BJ
J$!BJ"J$J	J$J!	J$$J<c                 L    t        ||d       t        j                  | |||      S r   r)   r   complex_power_implr   s       r   np_complex_power_implr%    %     dA.%%gwTBBr*   c                 L    t        ||d       t        j                  | |||      S r   )r)   r   real_power_implr   s       r   real_float_power_implr)    s%     dA.""7GS$??r*   c                 L    t        ||d       t        j                  | |||      S r   r#  r   s       r   np_complex_float_power_implr+  $  r&  r*   c                 L    t        ||d       t        j                  | |||      S r   )r)   r   gcd_implr   s       r   np_gcd_implr.  -  %     dA.WgsD99r*   c                     |j                   \  }}||cxk(  r|j                  k(  sJ  J |\  }}d }| j                  ||||      }	t        | ||j                  |	      S )Nc                 Z    | dk(  rdS t        | |t        j                  ||       z  z        S )z7
        Like gcd, heavily cribbed from Julia.
        r   )absr	  gcd)abs     r   lcmznp_lcm_impl.<locals>.lcm;  s.     Fq<AbffQl):$; <<r*   )r   r   compile_internalr   )
r8   r9   r%   r   xtyytyr   r   r6  r   s
             r   np_lcm_implr:  5  sg    xxHC#((((((DAq= 
"
"7Cd
;CgwEEr*   c                    t        ||d       t        dk\  r/d }| j                  ||||      }t        | ||j                  |      S |d   }|j
                  d   }| j                  ||      }|j                  }	| j                  |	d      }
| j                  |	d      }| j                  |	d      }| j                  |	t        d            }|
|_
        |
|_        t        j                  t        j                  g|gd	z   }||j!                         g}t#        | |||      }t%        | |||      }t'        | |||      }|j)                  ||
|      }|j)                  |||      }|j)                  |||      |_
        |j!                         S )
Nrb   )r`   r   c                 l    t        j                  | j                  | j                        }|dk(  ry| |z  S )Nr   y                )mathhypotr   r   )zr2  s     r   complex_signz*np_complex_sign_impl.<locals>.complex_signO  s-    **QVVQVV,Cax3wr*   r   r   r         nanr`   )r)   r   r7  r   r   r   rH   r  rh   floatr   r   r   r  r   booleanr   np_complex_ge_implnp_complex_eq_implnp_complex_lt_implrt   )r8   r9   r%   r   r@  r   opr   rA   float_tyrz   r   r{   NANcmp_sigcmp_argsarg1_ge_arg2arg1_eq_arg2arg1_lt_arg2real_when_gereal_when_nges                        r   np_complex_sign_implrR  H  s    !dA.	 &&wc4H!'7COOSII!WXXa[%%gr2&&##Hc2##Hc2((48	""8U5\:""5==<B4!8<((*+)'7GXN)'7GXN)'7GXN~~lD#>|YDnn\<O!!r*   c                 J    t        ||d       t        j                  |d|      S )Nrb   z	llvm.rintr)   r   call_fp_intrinsicr   s       r   np_real_rint_implrV  u  #     dA.%%g{DAAr*   c                 h   t        ||d       |j                  d   }|j                  }| j                  |||d         }| j                  ||      }t	        j
                  |gdz   }t        | |||j                  g      |_        t        | |||j                  g      |_        |j                         S )Nrb   r   r   r`   )
r)   r   r  rH   r   r  rV  r   r   r   )	r8   r9   r%   r   r   rI  r   rU   	inner_sigs	            r   np_complex_rint_implrZ  {  s     !dA.	!B""H


w$q'

:C


w
+C  8*Q,/I '9sxxjICH '9sxxjICH==?r*   c                 L    t        ||d       t        j                  | |||      S Nrb   )r)   r   exp_implr   s       r   np_real_exp_implr^    r/  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   r]  r   s       r   np_complex_exp_implr`    %     dA.gwT::r*   c                     t        ||d       |d   j                  }t        j                  j	                  ||g      }t        j                  |j                  |d      }|j                  ||d   g      S )Nrb   r   z	llvm.exp2r,   	r)   ri   r0   r1   r2   r
   r3   r.   r6   r8   r9   r%   r   ll_tyr=   r>   s          r   np_real_exp2_implrf    e     dA.GLLE;;##EE84D		%	%gnnd+6
8B<<T!WI&&r*   c                    t        ||d       |j                  d   }|j                  }| j                  |||d         }| j                  ||      }| j	                  |t
              }|j                  ||j                        |_        |j                  ||j                        |_        t        | |||j                         g      S Nrb   r   r   )r)   r   r  rH   rh   
_NPY_LOGE2r   r   r   r`  r   )	r8   r9   r%   r   r   rI  r   r   loge2s	            r   np_complex_exp2_implrl    s     dA.	!B""H


w$q'

:C


w
+C  :6E||E388,CH||E388,CHws}}6GHHr*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   log_implr   s       r   np_real_log_implro    r/  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   rn  r   s       r   np_complex_log_implrq    ra  r*   c                     t        ||d       |d   j                  }t        j                  j	                  ||g      }t        j                  |j                  |d      }|j                  ||d   g      S )Nrb   r   z	llvm.log2r,   rc  rd  s          r   np_real_log2_implrs    rg  r*   c                 f   t        ||d       |j                  d   }|j                  }t        | |||      }| j	                  |||      }| j                  |t              }|j                  ||j                        |_        |j                  ||j                        |_	        |j                         S ri  )r)   r   r  rq  rH   rh   r  r   r   r   r   )r8   r9   r%   r   r   rI  r   log2es           r   np_complex_log2_implrv    s     dA.	!B""H
gwT
:C


w#

6C  :6E||E388,CH||E388,CH==?r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   
log10_implr   s       r   np_real_log10_implry    %     dA.wd;;r*   c                 f   t        ||d       |j                  d   }|j                  }t        | |||      }| j	                  |||      }| j                  |t              }|j                  ||j                        |_        |j                  ||j                        |_	        |j                         S ri  )r)   r   r  rq  rH   rh   _NPY_LOG10Er   r   r   r   )r8   r9   r%   r   r   rI  r   log10es           r   np_complex_log10_implr~    s     dA.	!B""H
gwT
:C


w#

6C!!(K8F||FCHH-CH||FCHH-CH==?r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   
expm1_implr   s       r   np_real_expm1_implr    rz  r*   c                 *   t        ||d       |j                  d   }|j                  }t        j                  |gdz   }| j                  |d      }| j                  |||d         }t        | |||j                  g      }	| j                  ||      }
t        | |||j                  g      }t        | |||j                  g      }|j                  |	|      }|j                  |	|      |
_
        |j                  ||      |
_        |
j                         S )Nrb   r   r`   rA  r   )r)   r   r  r   r  rh   rH   r^  r   np_real_cos_implr   np_real_sin_implr   r   r   )r8   r9   r%   r   r   rI  float_unary_sigr{   r   r4  rU   cos_imagsin_imagr   s                 r   np_complex_expm1_implr    s     dA.	!B""H&&
15O$$Xt4I


w$q'

:C'?SXXJGA


w
+C/CHH:NH/CHH:NH
,,q(
#C||Ax(CH||C+CH==?r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   
log1p_implr   s       r   np_real_log1p_implr  	  rz  r*   c                    t        ||d       |j                  d   }|j                  }t        j                  |gdz   }t        j                  |gdz   }| j                  |d      }| j                  |||d         }	| j                  ||      }
|j                  |	j                  |      }t        | ||||	j                  g      }t        | |||	j                  |g      |
_
        t        | |||g      |
_        |
j                         S )Nrb   r   r`      r   r   )r)   r   r  r   r  rh   rH   r   r   np_real_hypot_implr   np_real_atan2_implro  r   )r8   r9   r%   r   r   rI  r  float_binary_sigr   r   rU   real_plus_onels                r   np_complex_log1p_implr    s    dA.	!B""H&&
15O''(A6


x
-C


w$q'

:C


w
+CLL3/M7G-=)3884	6A!'74D#&88]";=CH/A3GCH==?r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   	sqrt_implr   s       r   np_real_sqrt_implr  &  %     dA.gwT::r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   r  r   s       r   np_complex_sqrt_implr  +  s%     dA.wd;;r*   c                 L    t        ||d       |j                  |d   |d         S Nrb   r   )r)   mulr   s       r   np_int_square_implr  3  s'     dA.;;tAwQ((r*   c                 L    t        ||d       |j                  |d   |d         S r  )r)   r   r   s       r   np_real_square_implr  8  s'     dA.<<Qa))r*   c                     t        ||d       t        j                  |j                  gdz   }t	        j
                  | |||d   |d   g      S Nrb   r  r   )r)   r   r  r   r   complex_mul_impl)r8   r9   r%   r   
binary_sigs        r   np_complex_square_implr  <  sS     dA.!!COO#4Q#67J##GWj&*1gtAw%79 9r*   c                 t    t        ||d       t        d      d        fd}| j                  ||||      S )Nrb   T)fastmathc                 h    | dk  rt        j                  |  d       S t        j                  | d      S )Nr   gUUUUUU?)r	  powerr  s    r   cbrtznp_real_cbrt_impl.<locals>.cbrtK  s0    q5HHaR+++88Ay))r*   c                 ^    t        j                  |       rt         j                  S  |       S r   )r	  isnanrB  )r   r  s    r   _cbrtz np_real_cbrt_impl.<locals>._cbrtR  s     88A;66MAwr*   )r)   r   r7  )r8   r9   r%   r   r  r  s        @r   np_real_cbrt_implr  F  sF     dA. t$* %*
 ##GUC>>r*   c                 R   t        ||d       |j                  }t        j                  |gdz   }| j	                  ||d   |t
        j                        }| j                  t
        j                  d      }|j                  ||      }| j	                  ||t
        j                  |      S r  )	r)   r   r   r  r5   r   r7   rh   r   )	r8   r9   r%   r   r   r  in_as_floatr   result_as_floats	            r   np_int_reciprocal_implr  ]  s     !dA.	B!!B46*J,,wQU]]CK


u}}a
0Cll34O<<%--DDr*   c                 ~    t        ||d       | j                  |j                  d      }|j                  ||d         S )Nrb   r   r   )r)   rh   r   r   )r8   r9   r%   r   r   s        r   np_real_reciprocal_implr  k  s9     dA.


s
4C<<T!W%%r*   c                 >   t        ||d       |j                  d   }|j                  }| j                  |d      }| j                  |d      }| j	                  |||d         }| j	                  ||      }	|j
                  }
|j                  }t        | ||
      }t        | ||      }|j                  d||      }|j                  |      5 \  }}|5  |j                  ||
      }|j                  ||      }|j                  |
|      }|j                  ||      }|j                  ||      }||	_        |j                  ||      |	_        d d d        |5  |j                  |
|      }|j                  |
|      }|j                  ||      }|j                  ||      }|j                  ||      |	_        |j                  ||      |	_        d d d        d d d        |	j                         S # 1 sw Y   xY w# 1 sw Y   -xY w# 1 sw Y   |	j                         S xY w)Nrb   r   r   r   r   <=)r)   r   r  rh   rH   r   r   r   r   rn   r   r   r   r   r   )r8   r9   r%   r   r   rI  rz   r   r   rU   r   r   in1r_absin1i_absin1i_abs_le_in1r_absr   r   rtmp0dinv_dminus_rs                         r   np_complex_reciprocal_implr  q  s    !dA.	!B""H#.D


x
-C


w$q'

:C


w
+C88D88DWgt,HWgt,H"//hI	-	. 12C4 	4T4(A<<a(DT4(ALLa(Ell4+GCH||GU3CH	4  	1T4(A<<a(DT4(ALLa(E||Au-CH||D%0CH	11" ==?!	4 	4	1 	11" ==?s>   HA9G,
HA7G8H,G5	1H8H	=HHc                 L    t        ||d       t        j                  | |||      S r\  )r)   r   sin_implr   s       r   r  r    r/  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   r  r   s       r   np_complex_sin_implr    ra  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   cos_implr   s       r   r  r    r/  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   r  r   s       r   np_complex_cos_implr    ra  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   tan_implr   s       r   np_real_tan_implr    r/  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   	asin_implr   s       r   np_real_asin_implr    r  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   	acos_implr   s       r   np_real_acos_implr    r  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   	atan_implr   s       r   np_real_atan_implr    r  r*   c                 L    t        ||d       t        j                  | |||      S r   )r)   r   atan2_float_implr   s       r   r  r    %     dA.$$WgsDAAr*   c                 L    t        ||d       t        j                  | |||      S r   )r)   r   hypot_float_implr   s       r   r  r    r  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   	sinh_implr   s       r   np_real_sinh_implr    r  r*   c                    t        ||d       |j                  d   }|j                  }t        j                  |gdz   }| j                  |||d         }| j                  ||      }|j                  }	|j                  }
t        | |||
g      }t        | |||	g      }t        | |||
g      }t        | |||	g      }|j                  ||      |_        |j                  ||      |_        |j                         S Nrb   r   r`   )r)   r   r  r   r  rH   r   r   r  r  r  np_real_cosh_implr   r   )r8   r9   r%   r   r   ftyfsig1r   rU   xrxisxishxrcxichxrs                  r   np_complex_sinh_implr    s     !dA. 
!B


CseAg&EWb$q'2A


w
+C	
B	
B
7GURD
9CWgurd;D
7GURD
9CWgurd;D||C&CH||C&CH==?r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   	cosh_implr   s       r   r  r    r  r*   c                    t        ||d       |j                  d   }|j                  }t        j                  |gdz   }| j                  |||d         }| j                  ||      }|j                  }	|j                  }
t        | |||
g      }t        | |||	g      }t        | |||
g      }t        | |||	g      }|j                  ||      |_        |j                  ||      |_        |j                         S r  )r)   r   r  r   r  rH   r   r   r  r  r  r  r   r   )r8   r9   r%   r   r   r  r  r   rU   r  r  r  r  r  r  s                  r   np_complex_cosh_implr    s     !dA.	!B


CseAg&EWb$q'2A


w
+C	
B	
B
7GURD
9CWgurd;D
7GURD
9CWgurd;D||C&CH||C&CH==?r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   	tanh_implr   s       r   np_real_tanh_implr  &  r  r*   c                    t        ||d       |j                  d   }|j                  }t        j                  |gdz   }| j                  |d      }| j                  |||d         }| j                  ||      }	|j                  }
|j                  }t        | |||g      }t        | |||g      }t        | |||
g      }t        | |||
g      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j                  ||      }|j!                  ||      }|j                  ||      |	_        |j                  ||      |	_        |	j#                         S )Nrb   r   r`   r   )r)   r   r  r   r  rh   rH   r   r   r  r  r  r  r   r   r   r   r   )r8   r9   r%   r   r   r  r  r   r   rU   r  r  sicishrchr_rsis_rcicsqr_rcsqr_icr  r  rs_rcis_icis_rcrs_icnumrnumis                                 r   np_complex_tanh_implr  +  s    !dA.	!B


CseAg&E


sC
(CWb$q'2A


w
+C	
B	
B	'7EB4	8B	'7EB4	8B
GWebT
:CWgurd;D	b#	B
,,r4
 C	b$	B	b#	B\\"b!F\\"b!FVV$ALLa ELLR ELLb!ELLb!ELLR E<<u%D<<u%D||D%(CH||D%(CH==?r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   
asinh_implr   s       r   np_real_asinh_implr  T  rz  r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   
acosh_implr   s       r   np_real_acosh_implr  \  rz  r*   c                    t        ||d       |j                  d   }t        j                  |gdz   }| j	                  ||d      }|d   }t        j                  | ||||g      }t        j                  | ||||g      }	t        | |||g      }
t        | |||	g      }t        j                  | |||
|g      }t        j                  | ||||g      }t        | |||g      S )Nrb   r   r  y      ?        )r)   r   r   r  get_constant_genericr   complex_add_implcomplex_sub_implr  r  rq  )r8   r9   r%   r   r   csig2r   r   
x_plus_onex_minus_onesqrt_x_plus_onesqrt_x_minus_one	prod_sqrtlog_args                 r   np_complex_acosh_implr  a  s    !dA.	!Brd1f%E

&
&wJ
?CQA))'7EAEHDJ KJ**7GUQFIEK LK*7GS:,OO+GWcK=Q(('5+:+;+=>I &&wBKAM NG wwi@@r*   c                 L    t        ||d       t        j                  | |||      S r\  )r)   r   
atanh_implr   s       r   np_real_atanh_implr    rz  r*   c                 J    t        ||d       t        j                  |d|      S )Nrb   z
llvm.floorrT  r   s       r   r  r    #     dA.%%g|TBBr*   c                 J    t        ||d       t        j                  |d|      S )Nrb   z	llvm.ceilrT  r   s       r   np_real_ceil_implr    rW  r*   c                 J    t        ||d       t        j                  |d|      S )Nrb   z
llvm.truncrT  r   s       r   np_real_trunc_implr    r  r*   c                 J    t        ||d       t        j                  |d|      S )Nrb   z	llvm.fabsrT  r   s       r   np_real_fabs_implr    rW  r*   c                    t        ||dt        j                         |j                  d   }|D cg c]  }| j	                  |||       c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
      }|j                  d|	|      }|j                  d||
      }|j                  d|	|      }|j                  ||      }|j                  ||      }|j                  ||      S c c}w )	Nr`   r   r   r   rf   ordrc   r   
r)   r   rD  r   rH   r   r   r   rl   rm   )r8   r9   r%   r   r   r   r   r   r  r  yryixr_gt_yrno_nan_xi_yixr_eq_yrxi_ge_yi
first_termsecond_terms                     r   rE  rE         !dA5==I	!BHLM$$Wb$<MHC	B	B	B	B##CR0H''r26L##D"b1H##D"b1Hh5J,,x2K;;z;// N   Dc                    t        ||dt        j                         |j                  d   }|D cg c]  }| j	                  |||       c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
      }|j                  d|	|      }|j                  d||
      }|j                  d|	|      }|j                  ||      }|j                  ||      }|j                  ||      S c c}w )	Nr`   r  r   r   r   r  rc   r  r   )r8   r9   r%   r   r   r   r   r   r  r  r!  r"  xr_lt_yrr$  r%  xi_le_yir'  r(  s                     r   np_complex_le_implr.    r)  r*  c                    t        ||dt        j                         |j                  d   }|D cg c]  }| j	                  |||       c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
      }|j                  d|	|      }|j                  d||
      }|j                  d|	|      }|j                  ||      }|j                  ||      }|j                  ||      S c c}w )Nr`   r  r   r   rf   r  rc   r   )r8   r9   r%   r   r   r   r   r   r  r  r!  r"  r#  r$  r%  xi_gt_yir'  r(  s                     r   np_complex_gt_implr1         !dA5==I	!BHLM$$Wb$<MHC	B	B	B	B##CR0H''r26L##D"b1H##CR0Hh5J,,x2K;;z;// Nr*  c                    t        ||dt        j                         |j                  d   }|D cg c]  }| j	                  |||       c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
      }|j                  d|	|      }|j                  d||
      }|j                  d|	|      }|j                  ||      }|j                  ||      }|j                  ||      S c c}w )Nr`   r  r   r   r   r  rc   r   )r8   r9   r%   r   r   r   r   r   r  r  r!  r"  r,  r$  r%  xi_lt_yir'  r(  s                     r   rG  rG    r2  r*  c                 ~   t        ||dt        j                         |j                  d   }|D cg c]  }| j	                  |||       c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
      }|j                  d|	|      }|j                  ||      S c c}w )Nr`   r  r   r   rc   )	r)   r   rD  r   rH   r   r   r   rl   )r8   r9   r%   r   r   r   r   r   r  r  r!  r"  r%  xi_eq_yis                 r   rF  rF    s     !dA5==I	!BHLM$$Wb$<MHC	B	B	B	B##D"b1H##D"b1H<<(++ N   B:c                 ~   t        ||dt        j                         |j                  d   }|D cg c]  }| j	                  |||       c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
      }|j                  d|	|      }|j                  ||      S c c}w )Nr`   r  r   r   rg   )	r)   r   rD  r   rH   r   r   fcmp_unorderedrm   )r8   r9   r%   r   r   r   r   r   r  r  r!  r"  xr_ne_yrxi_ne_yis                 r   np_complex_ne_implr<    s     !dA5==I	!BHLM$$Wb$<MHC	B	B	B	B%%dB3H%%dB3H;;x** Nr7  c                     | j                  |||      }t        j                  ||j                        }t        j                  ||j                        }|j                  ||      S )Nr   )rH   r
   is_truer   r   rm   )r8   r9   r   valcomplex_valre_trueim_trues          r   _complex_is_truerC  )  sV    &&w#&>Koog{'7'78Goog{'7'78G;;w((r*   c                     t        ||dt        j                         t        j                  ||d         }t        j                  ||d         }|j                  ||      S Nr`   r  r   rb   )r)   r   rD  r
   r>  rl   r8   r9   r%   r   r4  r5  s         r   np_logical_and_implrG  0  sM     dA5==Ia)Aa)A<<1r*   c                     t        ||dt        j                         t        | ||j                  d   |d         }t        | ||j                  d   |d         }|j                  ||      S rE  )r)   r   rD  rC  r   rl   rF  s         r   np_complex_logical_and_implrI  7  s]     dA5==I'388A;Q@A'388A;Q@A<<1r*   c                     t        ||dt        j                         t        j                  ||d         }t        j                  ||d         }|j                  ||      S rE  )r)   r   rD  r
   r>  rm   rF  s         r   np_logical_or_implrK  >  M     dA5==Ia)Aa)A;;q!r*   c                     t        ||dt        j                         t        | ||j                  d   |d         }t        | ||j                  d   |d         }|j                  ||      S rE  )r)   r   rD  rC  r   rm   rF  s         r   np_complex_logical_or_implrN  E  ]     dA5==I'388A;Q@A'388A;Q@A;;q!r*   c                     t        ||dt        j                         t        j                  ||d         }t        j                  ||d         }|j                  ||      S rE  )r)   r   rD  r
   r>  rs   rF  s         r   np_logical_xor_implrQ  L  rL  r*   c                     t        ||dt        j                         t        | ||j                  d   |d         }t        | ||j                  d   |d         }|j                  ||      S rE  )r)   r   rD  rC  r   rs   rF  s         r   np_complex_logical_xor_implrS  S  rO  r*   c                 n    t        ||dt        j                         t        j                  ||d         S Nrb   r  r   )r)   r   rD  r
   is_falser   s       r   np_logical_not_implrW  Z  s+     dA5==IGT!W--r*   c                     t        ||dt        j                         t        | ||j                  d   |d         }|j                  |      S rU  )r)   r   rD  rC  r   not_)r8   r9   r%   r   r4  s        r   np_complex_logical_not_implrZ  _  s>     dA5==I'388A;Q@A<<?r*   c                 r    t        ||d       |\  }}|j                  d||      }|j                  |||      S Nr`   r   r)   rr   rt   )r8   r9   r%   r   arg1arg2arg1_sge_arg2s          r   np_int_smax_implra  n  >     dA.JD$''dD9M>>-t44r*   c                 r    t        ||d       |\  }}|j                  d||      }|j                  |||      S r\  r)   rk   rt   )r8   r9   r%   r   r^  r_  arg1_uge_arg2s          r   np_int_umax_implrf  u  >     dA.JD$))$d;M>>-t44r*   c                 
   t        ||d       |\  }}|j                  d||      }|j                  d||      }|j                  |||      }|j                  d||      }	|j                  |	||      }
|j                  |||
      S Nr`   unor   r)   r9  rt   r   )r8   r9   r%   r   r^  r_  arg1_nanany_nan
nan_resultrM  non_nan_results              r   np_real_maximum_implrp  |       dA.JD$%%eT48H$$UD$7G$5J''dD9L^^L$=N>>':~>>r*   c                 
   t        ||d       |\  }}|j                  d||      }|j                  d||      }|j                  |||      }|j                  d||      }	|j                  |	||      }
|j                  |||
      S ri  rk  )r8   r9   r%   r   r^  r_  arg2_nanrm  rn  rM  ro  s              r   np_real_fmax_implrt    rq  r*   c                    t        ||d       |j                  d   }t        j                  t        j
                  |      }t        j                  t        j
                  g|gdz   }|\  }}t        | |||g      }	t        | |||g      }
|j                  |	|
      }|j                  |	||      }t        | |||      }|j                  |||      }|j                  |||      S Nr`   r   
r)   r   r   r  r   rD  np_complex_isnan_implrm   rt   rE  r8   r9   r%   r   r   bc_sigbcc_sigr^  r_  rl  rs  rm  rn  rM  ro  s                  r   np_complex_maximum_implr|         !dA.	!BemmR0Fu}}6tAv6GJD$$WgvvFH$WgvvFHkk(H-G$5J%gwFL^^L$=N>>':~>>r*   c                    t        ||d       |j                  d   }t        j                  t        j
                  |      }t        j                  t        j
                  g|gdz   }|\  }}t        | |||g      }	t        | |||g      }
|j                  |	|
      }|j                  |
||      }t        | |||      }|j                  |||      }|j                  |||      S rv  rw  ry  s                  r   np_complex_fmax_implr        
 !dA.	!BemmR0Fu}}6tAv6GJD$$WgvvFH$WgvvFHkk(H-G$5J%gwFL^^L$=N>>':~>>r*   c                 r    t        ||d       |\  }}|j                  d||      }|j                  |||      S Nr`   r  r]  )r8   r9   r%   r   r^  r_  arg1_sle_arg2s          r   np_int_smin_implr    rb  r*   c                 r    t        ||d       |\  }}|j                  d||      }|j                  |||      S r  rd  )r8   r9   r%   r   r^  r_  arg1_ule_arg2s          r   np_int_umin_implr    rg  r*   c                 
   t        ||d       |\  }}|j                  d||      }|j                  d||      }|j                  |||      }|j                  d||      }	|j                  |	||      }
|j                  |||
      S Nr`   rj  r  rk  r8   r9   r%   r   r^  r_  rl  rm  rn  arg1_le_arg2ro  s              r   np_real_minimum_implr    rq  r*   c                 
   t        ||d       |\  }}|j                  d||      }|j                  d||      }|j                  |||      }|j                  d||      }	|j                  |	||      }
|j                  |||
      S r  rk  r  s              r   np_real_fmin_implr    rq  r*   c                    t        ||d       |j                  d   }t        j                  t        j
                  |      }t        j                  t        j
                  g|gdz   }|\  }}t        | |||g      }	t        | |||g      }
|j                  |	|
      }|j                  |	||      }t        | |||      }|j                  |||      }|j                  |||      S rv  
r)   r   r   r  r   rD  rx  rm   rt   r.  r8   r9   r%   r   r   rz  r{  r^  r_  rl  rs  rm  rn  r  ro  s                  r   np_complex_minimum_implr    r}  r*   c                    t        ||d       |j                  d   }t        j                  t        j
                  |      }t        j                  t        j
                  g|gdz   }|\  }}t        | |||g      }	t        | |||g      }
|j                  |	|
      }|j                  |
||      }t        | |||      }|j                  |||      }|j                  |||      S rv  r  r  s                  r   np_complex_fmin_implr    r  r*   c                 \    t        ||dt        j                         t        j                  S Nrb   r  r)   r   rD  r
   	false_bitr   s       r   np_int_isnan_implr          dA5==Ir*   c                 n    t        ||dt        j                         t        j                  ||d         S rU  )r)   r   rD  r   is_nanr   s       r   np_real_isnan_implr  $  )     dA5==I??7DG,,r*   c                     t        ||dt        j                         |\  }|j                  \  }| j	                  |||      }t        j                  ||      S Nrb   r  r   )r)   r   rD  r   rH   r   r  r8   r9   r%   r   r   r   r@  s          r   rx  rx  )  sP     dA5==I	BA
((CB&&w!&<KG[11r*   c                 \    t        ||dt        j                         t        j                  S r  )r)   r   rD  r
   true_bitr   s       r   np_int_isfinite_implr  2  s      dA5==Ir*   c                     t        ||dt        j                         |j                  d|d   t        j
                        S )Nrb   r  rg   r   )r)   r   rD  rk   r   NATr   s       r   np_datetime_isfinite_implr  7  s1     dA5==I  tAw
??r*   c                     t        ||dt        j                         |j                  d|d   t        j
                        S )Nrb   r  rc   r   )r)   r   rD  rr   r   r  r   s       r   np_datetime_isnat_implr  <  s1     dA5==ItT!Wjnn==r*   c                 n    t        ||dt        j                         t        j                  ||d         S rU  )r)   r   rD  r   	is_finiter   s       r   np_real_isfinite_implr  A  s+     dA5==IgtAw//r*   c                     t        ||dt        j                         |\  }|j                  \  }| j	                  |||      }t        j                  ||      S r  )r)   r   rD  r   rH   r   r  r  s          r   np_complex_isfinite_implr  F  sP     dA5==I	BA
((CB&&w!&<Kw44r*   c                 \    t        ||dt        j                         t        j                  S r  r  r   s       r   np_int_isinf_implr  N  r  r*   c                 n    t        ||dt        j                         t        j                  ||d         S rU  )r)   r   rD  r   is_infr   s       r   np_real_isinf_implr  S  r  r*   c                     t        ||dt        j                         |\  }|j                  \  }| j	                  |||      }t        j                  ||      S r  )r)   r   rD  r   rH   r   r  r  s          r   np_complex_isinf_implr  X  sP     dA5==I	BA
((CB&&w!&<KG[11r*   c           	      f   t        ||dt        j                         t        j                  | j	                  t        j
                  d      t        j                  | j	                  t        j                  d      t        j                  | j	                  t        j                  d      i}|j                  d   }t        t        d|j                         }| j                  |      }|j                  |j                  |d   |      ||         }|j!                  d||j#                  d            }	|	S )	Nrb   r  i   l        l            r   uintrg   )r)   r   rD  float16rh   uint16float32uint32r7   uint64r   getattrbitwidthrL   rl   bitcastrk   ri   )
r8   r9   r%   r   masksarg_ty
arg_int_tyarg_ll_int_tyint_resbool_ress
             r   np_real_signbit_implr  `  s     dA5==I 	w++ELL&Aw++ELL*Ew++ELL:LME
 XXa[F$v&7 89J**:6Mll7??47MB =*G$$T7GLLODHOr*   c                 L    t        ||d       t        j                  | |||      S r   )r)   r   copysign_float_implr   s       r   np_real_copysign_implr  r  s%     dA.''#tDDr*   c                     t        ||d       t        j                  dt        j                  di}t	        | ||||d      S )Nr`   numba_nextafterfnumba_nextafter	nextafter)r)   r   r  r7   r^   )r8   r9   r%   r   dispatch_tables        r   np_real_nextafter_implr  w  sI     dA. 	)(N
 'wd'5{D Dr*   c                    t        ||d       t        j                  dt        j                  di}|j                  \  }t        j                  |j                  ||      }|d   j                  } |t        j                        }t        j                  j                  |||g      }	t        j                  |j                   |	d      }
|j#                  |
||d   g      }||gz   }t%        | ||||d      }|j'                  ||d         S )Nrb   r  r  r   zllvm.copysignr,   r  )r)   r   r  r7   r   r   r  r   ri   r	  infr0   r1   r2   r
   r3   r.   r6   r^   r   )r8   r9   r%   r   r  r   rY  re  ll_infr=   r>   ll_sinf
inner_argsr  s                 r   np_real_spacing_implr    s     !dA. 	)(N
 88DR  "b9IGLLE266]F;;##EE5>:D		%	%gnnd+:
<Bll2Q01G
"J+GWi,6,79I <<	47++r*   c                     |\  }}|j                   \  }}| j                  |||t        j                        }t	        j
                  ||t        j                        }t        j                  | ||||f      S r   )r   r5   r   intcr   r  r   
ldexp_impl)	r8   r9   r%   r   r   r   ty1ty2f_fi_sigs	            r   np_real_ldexp_implr    sg     FBxxHC 
gr3

	3BS%**5HwB8DDr*   r   )__doc__r=  llvmlite.irr0   numpyr	  numba.core.extendingr   numba.core.imputilsr   
numba.corer   r   r   r	   r
   r   r   numba.npr   numba.np.mathr   r   r   numba.np.numpy_supportr   r  r|  rj  r)   USE_LEGACY_TYPE_SYSTEMr7   cast_arg_ty
np_float64rB   r^   r   r   r   r   r   r   np_int_fmod_implr   r   r   r   r   r   r   r
  expr  r  r  r  exp2r  r  r  r  r!  r%  r)  r+  r.  r:  rR  rV  rZ  r^  r`  rf  rl  ro  rq  rs  rv  ry  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rE  r.  r1  rG  rF  r<  rC  rG  rI  rK  rN  rQ  rS  rW  rZ  ra  rf  rp  rt  r|  r  r  r  r  r  r  r  r  r  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r*   r   <module>r     s9      ) 2 G G 1  6 6 0
 5
44
& 
  --K""K 0;I .|"J8D.*D $ (&
=GZ	2	 NJ"&& A		 
+i( ) OS+rww ?!$;D0lC@C:F&'"ZB&:
;'	I:
;'
 <

 <0<2;
<)
*9?.E&$T:
;:
;:;;;BB;
8;
6;
#R<<
A<<CBCB0*0*0*0*,"+.).
55???,?*55???,?0
-
2
@
>
0
5
-
2$E
	D,:Er*   